Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Conversion ascii alphabet | |
| | |
Auteur | Message |
---|
Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Conversion ascii alphabet Mer 7 Jan 2015 - 5:07 | |
| Bonjour, mon premier petit programme, grâce à votre aide. certainement des choses à améliorer. - Code:
-
rem définition et instanciation variables dim I%,min$,maj$,a$,nom$ min$ ="abcdefghijklmnopqrstuvwxyz" maj$ =upper$(min$) ' ---------------------------------- ' ---------------------------------- rem définition des labels label choix,remplissage,conversion ' ---------------------------------- ' ---------------------------------- rem code et propriété container container 27 width 27, 610 height 27 , 112 color 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- rem case à cochez minuscule ou majuscule option 28 : caption 28, "Minuscule" :top 28 , 90 : left 28, 220:mark_on 28 a$=min$ on_click 28, choix option 29 : caption 29, "Majuscule" :top 29 , 90 : left 29, 350 on_click 29, choix ' ---------------------------------- ' ---------------------------------- rem création bouton alphabet ' ---------------------------------- for I% = 1 to 26 Button I% caption I%, MID$(a$,i%,1):on_click I%,conversion if I% >= 1 and I% =< 8 then left I%, I% *75 - 70 :top I%,10 if I%>=9 and I%=<16 left I%, ((I%-8) *75) - 70 top I%, 35 end_if if I% >= 17 and I% =< 24 left I%, ((I%-16)*75) - 70 top I%,60 end_if if I% => 25 left I%, ((I%-24)*75) - 70 top I%,85 end_if next I% ' ---------------------------------- button 30:top 30,85:left 30, 530: on_click 30,choix:caption 30, "rafraichir" ' ---------------------------------- ' ---------------------------------- rem boite de texte pour test
edit 31 TEXT 31 , "cliquez sur une touche et tester ici,la conversion des touches en Ascii alt + code numérique de la touche " top 31, 120: left 31,5:width 31, 600
rem largeur de la form ' ---------------------------------- width 0,625:height 0,200 caption 0 ,"Convertisseur Ascii" end ' ---------------------------------- ' ---------------------------------- ' Labels .......................... ' ---------------------------------- choix: I% = number_click if number_click=28 rem checked(I%) = 1 a$=min$:goto remplissage else a$=maj$ :goto remplissage end_if end ' ---------------------------------- remplissage: for I% = 1 to 26 caption I%, MID$(a$,i%,1):on_click I%,conversion next I% end ' ---------------------------------- conversion: I% = number_click caption I%, (asc(caption$(I%))):set_focus 31 end Merci et à bientôt | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 7 Jan 2015 - 6:35 | |
| De très bon début Fohest. Même si certains allergiques au "goto" vont se manifester , ce sont de très bons débuts. Comme tu le dis, c' est perfectible mais ce sont des débuts et tu pourras le faire par toi même en avançant dans la maîtrise du langage. Félicitations, continu comme ceci. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 8:35 | |
| Oui, çà avance vite..... J'ai fait ALT+click sur un bouton et j'ai été surpris du résultat. Il faut que je creuse ton code pour voir comment tu y es parvenu. A+ ERRATUM: ALT n'a pas d'effet sur le click du bouton, je n'étais pas réveillé. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 9:31 | |
| Bonjour Fhoest, Quatre petites remarques (je n'ai pas vraiment étudié le code, juste essayé):
- quand on est en minuscules et qu'on clique Rafraîchir, ça passe en majuscules ?
- il y a une autre méthode pour afficher l'alphabet sans variables alphabet (min$ et maj$), avec le code Ascii des lettres:
positionner d% = 64 (majuscules) ou d% = 96 (minuscules) FOR i% = 1 TO 26 CAPTION i%,CHR$(d%+i%) NEXT i%
- si on clique plusieurs fois successives sur une touche (conversion en code ascii) ça n'est pas correct (il faudrait basculer entre l'affichage lettre et l'affichage code ascii).
- il faudrait aussi mettre width 0,626 (au lieu de 625) pour éviter l'apparition de la barre de défilement.
Sinon la présentation est bien propre.
Une autre remarque plus générale: personnellement je pratique systématiquement l'indentation pour rendre mon code plus lisible pour les autres et... surtout pour moi ! Sinon on est vite perdu dans l'arborescence des for/next, if/end_if etc.
Et je mets aussi les mot-clés systématiquement en majuscules pour bien les faire ressortir du contexte, mais ça c'est un choix personnel qui n'est pas partagé par tous. C'est vrai que c'est un peu plus contraignant à taper, il faudrait une fonction dans l'éditeur qui le fasse automatiquement (ça existe pour d'autres langages, et j'ai même fait autrefois un programme qui le fait aussi pour panoramic, mais je ne m'en sers pas, je le fais directement à la saisie). | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 11:59 | |
| Pour traiter ces événements tel qu'à été imaginé le programme tout fonctionne bien. Généralement, on ne met pas de end à la fin du traitement de l'événement mais un return Ca ne change pas grand chose dans ton programme. Pour les événement, tu as bien choisi avec le système Label NomDu sous-programme et la création des sous-programme par contre, c'est vrai que tu peux supprimer le label remplissage et remplacer les goto remplissage par remplissage en remplaçant le sous programme par ces lignes: - Code:
-
SUB remplissage() for I% = 1 to 26 caption I%, MID$(a$,i%,1):on_click I%,conversion next I% END_SUB | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 7 Jan 2015 - 15:00 | |
| Bonjour Fohest, Une partie de ton utilitaire revu : - Code:
-
Dim no% :' variable pour l' incrémentation des objets Dim B%(26) :' variables numéros des boutons Dim CO% :' variable numero container option Dim O1%,O2% :' variables numéros des options Dim x% :' la variable passe partout Dim mode% :' variable du mode (Minuscule ou Majuscule) Dim etat%(26) :' variables d' etat des boutons Label clic :' événement click
' Form 0 height 0,150 : width 0,26+(13*21) top 0,(screen_y-height(0))/2 : left 0,(screen_x-width(0))/2 font_name 0,"arial"
' container_option no%=no%+1 : CO%=no% container_option no% height no%,35 : width no%,width(0)-26 top no%,0 : left no%,5 caption no%," Mode "
' option 1 no%=no%+1 : O1%=no% Option no% parent no%,CO% : top no%,15 : left no%,5 cursor_point no% caption no%,"Minuscule" mark_on no% mode%=1 on_click no%,clic
' option 2 no%=no%+1 : O2%=no% Option no% parent no%,CO% : top no%,15 : left no%,120 cursor_point no% caption no%,"Majuscule" on_click no%,clic
' Buttons for x%=1 to 26 no%=no%+1 : B%(x%)=no% button no% width no%,21: height no%,21 if x%<14 top no%,35 : left no%,(21*x%)-16 else top no%,57 : left no%,(21*(x%-13))-16 end_if caption no%,chr$(x%+96) :font_bold no% cursor_point no% on_click no%,clic next x%
end
clic: if number_click=O1% mode%=1 Maj_mode() end_if if number_click=O2% mode%=2 Maj_mode() end_if if number_click<>O1% and number_click<>O2% for x%=1 to 26 if B%(x%)=number_click Convert(x%) end_if next x% end_if return
Sub Maj_mode() dim_local i% if mode%=1 for i%=1 to 26 caption B%(i%),chr$(96+i%) next i% else for i%=1 to 26 caption B%(i%),chr$(64+i%) next i% end_if End_sub
Sub Convert(z%) if etat%(z%)=0 etat%(z%)=1 if mode%=1 caption B%(z%),Str$(asc(chr$(96+z%))) else caption B%(z%),Str$(asc(chr$(64+z%))) end_if else etat%(z%)=0 if mode%=1 caption B%(z%),Chr$(96+z%) else caption B%(z%),Chr$(64+z%) end_if end_if End_sub | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 15:25 | |
| Bonjour à tous, Merci pour vos compliments et remarques, je vais essayer de prendre en compte chaque remarques puis de corriger les quelques petits soucis signaler ainsi que le code. je reviendrai vers vous une fois terminé. A bientôt. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 15:40 | |
| - Fhoest a écrit:
- Bonjour à tous,
Merci pour vos compliments et remarques, je vais essayer de prendre en compte chaque remarques puis de corriger les quelques petits soucis signaler ainsi que le code. je reviendrai vers vous une fois terminé. A bientôt. J'aime bien la manière dont tu tiens compte de nos interventions, nul doute que tu vas bientôt nous épater. A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 15:54 | |
| Salut tout le monde Salut Fhoest Bravo. Quand on a déjà pratiqué la programmation avec un langage, on ne trouve pas trop de difficultés pour s’adapter à un autre. Ton code en est une preuve. Après le grain de sel de Jicehel, celui de JL35, de Jean Claude et de Ygeronimi, voici ma pincée de poivre pour rehausser la saveur ! J’ai aéré un peu ton code pour une meilleure lisibilité. J’ai remplacé les END par des RETURN dans les sous-programmes. J’ai changé le sous-programme REMPLISSAGE par une procédure SUB REMPLISSAGE() afin d’éviter l’emploi de GOTO (je n’aime pas du tout le GOTO) - Code:
-
rem définition des labels label choix,conversion
rem définition et instanciation variables dim I%,min$,maj$,a$,nom$ min$ = "abcdefghijklmnopqrstuvwxyz" maj$ = upper$(min$) a$ = min$ ' ---------------------------------- ' ---------------------------------- rem code et propriété container container 27 : width 27, 610 : height 27 , 112 : color 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- rem case à cochez minuscule ou majuscule option 28 : caption 28, "Minuscule" :top 28 , 90 : left 28, 220 : mark_on 28 on_click 28, choix
option 29 : caption 29, "Majuscule" :top 29 , 90 : left 29, 350 on_click 29, choix ' ---------------------------------- ' ---------------------------------- rem création bouton alphabet ' ---------------------------------- for I% = 1 to 26 Button I% caption I%, MID$(a$,i%,1) : on_click I%,conversion if I% >= 1 and I% =< 8 then left I%, I% *75 - 70 : top I%,10 if I% >= 9 and I% =< 16 left I%, ((I% - * 75) - 70 top I%, 35 end_if if I% >= 17 and I% =< 24 left I%, ((I% - 16) * 75) - 70 top I%,60 end_if if I% => 25 left I%, ((I% - 24) * 75) - 70 top I%,85 end_if next I% ' ---------------------------------- button 30 : top 30,85 : left 30, 530 : on_click 30,choix : caption 30, "rafraichir" ' ---------------------------------- ' ---------------------------------- rem boite de texte pour test
edit 31 TEXT 31 , "cliquez sur une touche et tester ici,la conversion des touches en Ascii alt + code numérique de la touche " top 31, 120 : left 31,5 : width 31, 600
rem largeur de la form ' ---------------------------------- width 0,625 : height 0,200 : caption 0 ,"Convertisseur Ascii" end ' ---------------------------------- ' ---------------------------------- ' Labels .......................... ' ---------------------------------- choix: I% = number_click select I% case 28 : a$ = min$ case 29 : a$ = maj$ case 30 : ' Ne rien faire , laisser a$ telle quelle end_select remplissage() return ' ---------------------------------- SUB remplissage() for I% = 1 to 26 caption I%, MID$(a$,i%,1) : on_click I%,conversion next I% END_SUB ' ---------------------------------- conversion: I% = number_click caption I%, (asc(caption$(I%))) : set_focus 31 return
| |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 16:51 | |
| Salut, A vrai dire on a fait ça en simultané car je viens de revenir sur le forum et c'est exactement par quoi j'ai commencer les modifications. Une remarque m'a fait penser à quelques choses d'intéressant pour mon programme (et oui je vais tenter de la faire évoluer) Voici ce que je recherche, un code ou une instruction qui me retourne le Caps lock on ou Off de mon clavier,son but est de ne plus passer par les options. A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 17:41 | |
| Tu as SCANCODE qui te permer de lire l'état des touches du clavier IF SCANCODE = ... Pour la touche Caps Lock c'est le code 20 Principaux codes: - Code:
-
Flèche gauche: 37 Maj gauche: 160 PgUp: 33 Flèche haut: 38 Maj droite: 161 PgDn: 34 Flèche droite: 39 Ctrl gauche: 162 Fin: 35 Flèche bas: 40 Ctrl droite: 163 Home: 36 Espace: 32 Alt gauche: 164 Inser: 45 Enter: 13 Alt droite: 165 Suppr: 46 Echap: 27 Après chaque lecture, il faut faire SCANCODE = 0 pour réinitialiser la fonction. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 18:09 | |
| Dans PANORAMIC EDITOR, sur la barre des menus, clique sur Outils / code des touches , une petite fenêtre s’ouvre et t’invite à taper sur une touche du clavier. Tu auras alors les codes suivant de n’importe quelle touche du clavier KEY_DOWN_CODE KEY_DOWN_SPECIAL KEY_UP_CODE KEY_UP_SPECIAL SCANCODE | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 7 Jan 2015 - 18:11 | |
| Moi je trouve que ça fait du bien d' avoir un petit nouveau à martyriser, pas vous ?... T' en fait pas Fhoest, n' es pas peur, on est comme çà tout le temps... ...et tu n' as pas eu encore les plus loufoques de l' équipe. Certains sont encore coincés sur une autre planète . | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 18:12 | |
| Tu veux parler du MARTIEN pour ne pas le nommer ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 7 Jan 2015 - 18:25 | |
| Oui, oui, lui même ainsi que du maître de la 3D... Fhoest a soulevé un lièvre avec la touche Caps-Lock. Avez vous un moyen de récupérer l' état du clavier lorsqu' il est verrouillé en majuscules ?... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 18:43 | |
| Salut Forest, Laisses les débiles qui sont intervenus plus haut Penches-toi plutôt sur une mise en forme de ton code initial (sans correction des erreurs) utilisant des procédures. - Code:
-
Dim_et_label():' déclaration des variables et des étiquettes (label) Objets():' déclaration, création et attributs des objets Panoramic gosub choix2: ' démmarage du programme END ' ======================================== Sous-programmes par label ou on_click choix: I% = number_click choix2: ' pour commencer en majuscules if I%=28 a$=min$ : remplissage() else a$=maj$ : remplissage() end_if end ' ---------------------------------- conversion: I% = number_click caption I%, (asc(caption$(I%))):set_focus 31 return
' ==================================== Sous-programme par pocédures(SUB/END_SUB) SUB remplissage() for I% = 1 to 26 caption I%, MID$(a$,i%,1):on_click I%,conversion next I% END_SUB ' ============================================================================== ' Sous-programme par pocédures(SUB/END_SUB), pour déclaration des DIM, LABEL, OBJETS (avant END) SUB Dim_et_label() dim I%,min$,maj$,a$,nom$ min$ ="abcdefghijklmnopqrstuvwxyz" maj$ =upper$(min$) label choix,choix2,conversion END_SUB ' ---------- SUB Objets() ' largeur et hauteur de form 0 width 0,628 :' pour w8 628 évite la barre en bas height 0,200 caption 0 ,"Convertisseur Ascii" ' container 27 container 27 : width 27, 610 : height 27 , 112 : color 27, 25,255,150 ' case à cocher minuscule ou majuscule option 28 : caption 28, "Minuscule" :top 28 , 90 : left 28, 220 on_click 28, choix option 29 : caption 29, "Majuscule" :top 29 , 90 : left 29, 350 : :mark_on 29 on_click 29, choix ' création boutons alphabet for I% = 1 to 26 Button I% caption I%, MID$(a$,i%,1):on_click I%,conversion if I% >= 1 and I% =< 8 then left I%, I% *75 - 70 :top I%,10 if I%>=9 and I%=<16 left I%, ((I%-8) *75) - 70 : top I%, 35 end_if if I% >= 17 and I% =< 24 left I%, ((I%-16)*75) - 70 : top I%,60 end_if if I% => 25 left I%, ((I%-24)*75) - 70 : top I%,85 end_if next I% ' --- bouton rafraichir button 30:top 30,85:left 30, 530: on_click 30,choix:caption 30, "rafraichir" ' --- boite de texte pour test edit 31 : TEXT 31 , "cliquez sur une touche et tester ici,la conversion des touches en Ascii alt + code numérique de la touche " top 31, 120: left 31,5:width 31, 600 END_SUB Néanmoins les débiles ont de bonnes intérrogations Bon, je sort... A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: RE Mer 7 Jan 2015 - 19:06 | |
| Y a un des débiles qui pense à user32.dll... ...mais comme c' est un débile, il ne sait comment s' y prendre... | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 19:27 | |
| Voici la nouvelle version, toutes les corrections ne sont pas encore faites, cela viendra. il faut que j'arrive à déterminer au départ du lancement de la form si mon capslock est on ou off. mais cela n'a pas vraiment d'incidence par rapport à la logique des résultats obtenus du programme, en effet le résultat tiendra compte de ce qui est inscrit dans les boutons et non la réalité de la touche capslock du clavier. un moyen de capter si la touche capslock est verrouillé serait un sendkey$ d'un code (scancode qui ne fonctionnera pas car en scancode a = 65 et scancode A = 65 )vers un text ou variable sur laquel on fait un test ascii qui retournerai si on est en Majuscule ou minuscule ainsi on serait dire l'état de la touche scancode=20 ( capslock) le tou sur une fonction de type boolean. voilà comment je vois la chose de mon coté. Voyez par vous même le résultat sans ce que je viens d'écrire au sujet de la fonction de détection capslock . j'ai aperçu les outils de panoramic c'est sympa en plus c'est ce que je chercher. - Code:
-
rem définition et instanciation variables dim I%,min$,maj$,a$,nom$,temp% min$ ="abcdefghijklmnopqrstuvwxyz" maj$ =upper$(min$) ' ---------------------------------- ' ---------------------------------- rem définition des labels label choix,conversion,rafraichir, findcapslock,btn_findcapslock ' ---------------------------------- ' ---------------------------------- rem code et propriété container container 27 width 27, 610 height 27 , 112 color 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- rem case à cochez minuscule ou majuscule option 28 : caption 28, "Minuscule" :top 28 , 90 : left 28, 200:mark_on 28 a$=min$ on_click 28, choix option 29 : caption 29, "Majuscule" :top 29 , 90 : left 29, 300 on_click 29, choix ' ---------------------------------- ' ---------------------------------- rem création bouton alphabet ' ---------------------------------- for I% = 1 to 26 Button I% caption I%, MID$(a$,i%,1):on_click I%,conversion if I% >= 1 and I% =< 8 then left I%, I% *75 - 70 :top I%,10 if I%>=9 and I%=<16 left I%, ((I%-8) *75) - 70 top I%, 35 end_if if I% >= 17 and I% =< 24 left I%, ((I%-16)*75) - 70 top I%,60 end_if if I% => 25 left I%, ((I%-24)*75) - 70 top I%,85 end_if next I% ' ---------------------------------- button 30:top 30,85:left 30, 530: on_click 30,rafraichir:caption 30, "rafraichir" button 32:top 32,85 :left 32, 455 :caption 32 , "CapsLock_Off": on_click 32,btn_findcapslock ' ---------------------------------- ' ---------------------------------- rem hauteur & largeur de la form ' ---------------------------------- width 0,626:height 0,155 caption 0 ,"Convertisseur Ascii" on_key_up 0 , findcapslock SET_FOCUS 0 end ' ---------------------------------- ' ---------------------------------- ' Labels .......................... ' ---------------------------------- choix: I% = number_click select I% case 28 : a$ = min$:remplissage() case 29 : a$ = maj$:remplissage() case 30: ' Ne rien faire , laisser a$ telle quelle end_select return ' ---------------------------------- btn_findcapslock: if caption$(32)= "CapsLock_Off" a$=maj$ remplissage() caption 32 , "CapsLock_On" MARK_ON 29 else a$=min$ remplissage() caption 32 , "CapsLock_Off" MARK_ON 28 end_if return ' ---------------------------------- findcapslock: if scancode= 20 if a$= min$ a$=maj$ remplissage() caption 32 , "CapsLock_On" MARK_ON 29 else a$=min$ remplissage() caption 32 , "CapsLock_Off" MARK_ON 28 end_if end_if set_focus 0 return ' ---------------------------------- conversion: I% = number_click if numeric(caption$(I%))<1 caption I%, (asc(caption$(I%))):set_focus 0 else temp%=val(caption$(I%)) caption I%, chr$(temp%):set_focus 0 end_if return rafraichir: mark_on 28 remplissage() return ' ---------------------------------- ' ---------------------------------- ' Routines .......................... ' ---------------------------------- sub remplissage() for I% = 1 to 26 caption I%, MID$(a$,i%,1):on_click I%,conversion next I% end_sub ' --------------- Martyriser moi (pffff!) je rêve si vous avez autant de patience que moi on va bien s'amuser. A+ et merci | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 20:19 | |
| @Fhoest Je n’ai plus 38 ans comme toi et mes yeux sont fatigués tout comme quelqu’un d’autre qui se reconnait. De ce fait j’ai pris l’habitude d’aérer l’écriture de mes codes. Je mets des espaces entres les divers éléments d’une expression. J’use aussi de la tabulation pour faire ressortir la structure de l’algorithme. Ça améliore la lisibilité du code et on a un moyen pour vérifier qu’un FOR possède son NEXT, un IF ne manque pas de END_IF, un REPEAT fait bon ménage avec son UNTIL, un WHILE n’est pas privé de son END_WHILE, etc.. C’est une habitude que j’ai prise moi-même et je ne l’impose à personne. Un code bien aéré donne envi de s’y plonger. Bon j’arrête mon blablabla et voici ton dernier code que j’ai réécrit à ma manière, sans rien changer sur le fond : seule la forme est relookée. - Code:
-
rem définition et instanciation variables dim I%,min$,maj$,a$,nom$,temp% min$ = "abcdefghijklmnopqrstuvwxyz" maj$ =upper$(min$) ' ---------------------------------- ' ---------------------------------- rem définition des labels label choix,conversion,rafraichir, findcapslock,btn_findcapslock ' ---------------------------------- ' ---------------------------------- rem code et propriété container container 27 width 27, 610 height 27 , 112 color 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- rem case à cochez minuscule ou majuscule option 28 : caption 28, "Minuscule" : top 28 , 90 : left 28, 200 : mark_on 28 a$ = min$ on_click 28, choix option 29 : caption 29, "Majuscule" :top 29 , 90 : left 29, 300 on_click 29, choix ' ---------------------------------- ' ---------------------------------- rem création bouton alphabet ' ---------------------------------- for I% = 1 to 26 Button I% caption I%, MID$(a$,i%,1) : on_click I%,conversion if I% >= 1 and I% =< 8 then left I%, I% *75 - 70 : top I%,10 if I% >= 9 and I% =< 16 left I%, ((I%-8) *75) - 70 top I%, 35 end_if if I% >= 17 and I% =< 24 left I%, ((I%-16)*75) - 70 top I%,60 end_if if I% => 25 left I%, ((I%-24)*75) - 70 top I%,85 end_if next I% ' ---------------------------------- button 30 : top 30,85 : left 30, 530 : on_click 30,rafraichir : caption 30, "rafraichir" button 32 : top 32,85 : left 32, 455 : caption 32 , "CapsLock_Off" : on_click 32,btn_findcapslock ' ---------------------------------- ' ---------------------------------- rem hauteur & largeur de la form ' ---------------------------------- width 0,626 : height 0,155 caption 0 ,"Convertisseur Ascii" on_key_up 0 , findcapslock SET_FOCUS 0 end ' ---------------------------------- ' ---------------------------------- ' Labels .......................... ' ---------------------------------- choix: I% = number_click select I% case 28 : a$ = min$:remplissage() case 29 : a$ = maj$:remplissage() case 30: ' Ne rien faire , laisser a$ telle quelle end_select return ' ---------------------------------- btn_findcapslock: if caption$(32)= "CapsLock_Off" a$ = maj$ remplissage() caption 32 , "CapsLock_On" MARK_ON 29 else a$ = min$ remplissage() caption 32 , "CapsLock_Off" MARK_ON 28 end_if return ' ---------------------------------- findcapslock: if scancode = 20 if a$ = min$ a$ = maj$ remplissage() caption 32 , "CapsLock_On" MARK_ON 29 else a$ = min$ remplissage() caption 32 , "CapsLock_Off" MARK_ON 28 end_if end_if set_focus 0 return ' ---------------------------------- conversion: I% = number_click if numeric(caption$(I%)) < 1 caption I%, (asc(caption$(I%))) : set_focus 0 else temp% = val(caption$(I%)) caption I%, chr$(temp%) : set_focus 0 end_if return rem ============================================================================ rafraichir: mark_on 28 remplissage() return ' ---------------------------------- ' ---------------------------------- ' Routines .......................... ' ---------------------------------- sub remplissage() for I% = 1 to 26 caption I%, MID$(a$,i%,1) : on_click I%,conversion next I% end_sub ' ---------------
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 21:34 | |
| Oui Papydall, tu as raison.
Mais moi je constate que Fhoest progresse à la la vitesse "CRAND_V"
Je me souvient de mes premiers pas avec Panoramic....
Une différence importante: Fhoest vient de Visual basic et la plupart d'entre nous, viennent du BASIC ancestrale....
Fhoest est un programmeur (par passion), seul le langage et les méthodes sont différent(es), quand il aura assimiler la programmation avec Panoramic, on va devoir être à la hauteur !
A+ | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Mer 7 Jan 2015 - 22:17 | |
| Que de compliment, vous êtes tout de même très fort et bon profs, j'ai encore du chemin à parcourir. voici pour le bien de tous le code en essayant d'appliquer les conseil de chacun ainsi que pour la visibilité réduite de certains. lol - Code:
-
REM définition et instanciation variables DIM X%,min$,maj$,MODE$,TEMP% min$ = "abcdefghijklmnopqrstuvwxyz" maj$ =upper$(min$) ' ---------------------------------- ' ---------------------------------- REM définition des LABELS LABEL OPT_CHOIX,LBL_CONVERSION,EVENT_RAFRAICHIR, LBL_FINDCAPSLOCK,EVENT_FINDCAPSLOCK ' ---------------------------------- ' ---------------------------------- REM code et propriété CONTAINER CONTAINER 27 WIDTH 27, 610 HEIGHT 27 , 112 COLOR 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- REM CASE à cochez minuscule ou majuscule OPTION 28 : CAPTION 28, "Minuscule" : TOP 28 , 90 : LEFT 28, 200 : MARK_ON 28 MODE$ = min$ ON_CLICK 28, OPT_CHOIX OPTION 29 : CAPTION 29, "Majuscule" :TOP 29 , 90 : LEFT 29, 300 ON_CLICK 29, OPT_CHOIX ' ---------------------------------- ' ---------------------------------- REM création bouton alphabet ' ---------------------------------- FOR X% = 1 to 26 BUTTON X% CAPTION X%, MID$(MODE$,X%,1) : ON_CLICK X%,LBL_CONVERSION IF X% >= 1 and X% =< 8 then LEFT X%, X% *75 - 70 : TOP X%,10 IF X% >= 9 and X% =< 16 LEFT X%, ((X%-8) *75) - 70 TOP X%, 35 END_IF IF X% >= 17 and X% =< 24 LEFT X%, ((X%-16)*75) - 70 TOP X%,60 END_IF IF X% => 25 LEFT X%, ((X%-24)*75) - 70 TOP X%,85 END_IF NEXT X% ' ---------------------------------- BUTTON 30 : TOP 30,85 : LEFT 30, 530 : ON_CLICK 30,EVENT_RAFRAICHIR : CAPTION 30, "RAFRAICHIR" BUTTON 32 : TOP 32,85 : LEFT 32, 455 : CAPTION 32 , "CapsLock_Off" : ON_CLICK 32,EVENT_FINDCAPSLOCK ' ---------------------------------- ' ---------------------------------- REM hauteur & largeur de la FORM ' ---------------------------------- WIDTH 0,626 : HEIGHT 0,155 CAPTION 0 ,"Convertisseur ASCII" ON_KEY_UP 0 , LBL_FINDCAPSLOCK SET_FOCUS 0 END ' ---------------------------------- ' ---------------------------------- ' LABELS . & EVENT_BTN.............. ' ---------------------------------- OPT_CHOIX: X% = NUMBER_CLICK SELECT X% CASE 28 : MODE$ = min$:REMPLISSAGE() CASE 29 : MODE$ = maj$:REMPLISSAGE() CASE 30: ' Ne rien faire , laisser MODE$ telle quelle END_SELECT RETURN ' ---------------------------------- LBL_FINDCAPSLOCK: IF SCANCODE = 20 IF MODE$ = min$ MODE$ = maj$ REMPLISSAGE() CAPTION 32 , "CapsLock_On" MARK_ON 29 ELSE MODE$ = min$ REMPLISSAGE() CAPTION 32 , "CapsLock_Off" MARK_ON 28 END_IF END_IF SET_FOCUS 0 RETURN ' ---------------------------------- LBL_CONVERSION: X% = NUMBER_CLICK IF NUMERIC(CAPTION$(X%)) < 1 CAPTION X%, (ASC(CAPTION$(X%))) : SET_FOCUS 0 ELSE TEMP% = VAL(CAPTION$(X%)) CAPTION X%, CHR$(TEMP%) : SET_FOCUS 0 END_IF RETURN REM ============================================================================ EVENT_RAFRAICHIR: MARK_ON 28 REMPLISSAGE() RETURN ' ---------------------------------- EVENT_FINDCAPSLOCK: IF CAPTION$(32)= "CapsLock_Off" MODE$ = maj$ REMPLISSAGE() CAPTION 32 , "CapsLock_On" MARK_ON 29 ELSE MODE$ = min$ REMPLISSAGE() CAPTION 32 , "CapsLock_Off" MARK_ON 28 END_IF RETURN
' ---------------------------------- ' ---------------------------------- ' Routines .......................... ' ---------------------------------- SUB REMPLISSAGE() FOR X% = 1 to 26 CAPTION X%, MID$(MODE$,X%,1) : ON_CLICK X%,LBL_CONVERSION NEXT X% END_SUB ' ---------------
en attendant je vais rechercher pour le capslock Avec Capslock: - Code:
-
REM définition et instanciation variables DIM X%,min$,maj$,MODE$,TEMP% min$ = "abcdefghijklmnopqrstuvwxyz" maj$ =upper$(min$) ' ---------------------------------- ' ---------------------------------- REM définition des LABELS LABEL OPT_CHOIX,LBL_CONVERSION,EVENT_RAFRAICHIR, LBL_FINDCAPSLOCK,EVENT_FINDCAPSLOCK ' ---------------------------------- ' ---------------------------------- REM code et propriété CONTAINER CONTAINER 27 WIDTH 27, 610 HEIGHT 27 , 112 COLOR 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- REM CASE à cochez minuscule ou majuscule OPTION 28 : CAPTION 28, "Minuscule" : TOP 28 , 90 : LEFT 28, 200 : MARK_ON 28 MODE$ = min$ ON_CLICK 28, OPT_CHOIX OPTION 29 : CAPTION 29, "Majuscule" :TOP 29 , 90 : LEFT 29, 300 ON_CLICK 29, OPT_CHOIX ' ---------------------------------- ' ---------------------------------- REM création bouton alphabet ' ---------------------------------- FOR X% = 1 to 26 BUTTON X% CAPTION X%, MID$(MODE$,X%,1) : ON_CLICK X%,LBL_CONVERSION IF X% >= 1 and X% =< 8 then LEFT X%, X% *75 - 70 : TOP X%,10 IF X% >= 9 and X% =< 16 LEFT X%, ((X%-8) *75) - 70 TOP X%, 35 END_IF IF X% >= 17 and X% =< 24 LEFT X%, ((X%-16)*75) - 70 TOP X%,60 END_IF IF X% => 25 LEFT X%, ((X%-24)*75) - 70 TOP X%,85 END_IF NEXT X% ' ---------------------------------- BUTTON 30 : TOP 30,85 : LEFT 30, 530 : ON_CLICK 30,EVENT_RAFRAICHIR : CAPTION 30, "RAFRAICHIR" BUTTON 32 : TOP 32,85 : LEFT 32, 455 : CAPTION 32 , "CapsLock_Off" : ON_CLICK 32,EVENT_FINDCAPSLOCK ' ---------------------------------- ' ---------------------------------- REM hauteur & largeur de la FORM ' ---------------------------------- WIDTH 0,626 : HEIGHT 0,155 CAPTION 0 ,"Convertisseur ASCII" ON_KEY_UP 0 , LBL_FINDCAPSLOCK
' ---------------------------------- ' ---------------------------------- REM INIT PROPRIETE CAPSLOCK IF MESSAGE_INPUT$("Paramétrage Capslock", "Tapez a ou A sans vous souciez du VERR MAJ" , " ")= chr$(65) MARK_ON 29 CAPTION 32, "CapsLock_On" ELSE MARK_ON 28 CAPTION 32, "CapsLock_Off" END_IF SET_FOCUS 0 END ' ---------------------------------- ' ---------------------------------- ' LABELS . & EVENT_BTN.............. ' ---------------------------------- OPT_CHOIX: X% = NUMBER_CLICK SELECT X% CASE 28 : MODE$ = min$:REMPLISSAGE() CASE 29 : MODE$ = maj$:REMPLISSAGE() CASE 30: ' Ne rien faire , laisser MODE$ telle quelle END_SELECT RETURN ' ---------------------------------- LBL_FINDCAPSLOCK: IF SCANCODE = 20 IF MODE$ = min$ MODE$ = maj$ REMPLISSAGE() CAPTION 32 , "CapsLock_On" MARK_ON 29 ELSE MODE$ = min$ REMPLISSAGE() CAPTION 32 , "CapsLock_Off" MARK_ON 28 END_IF END_IF SET_FOCUS 0 RETURN ' ---------------------------------- LBL_CONVERSION: X% = NUMBER_CLICK IF NUMERIC(CAPTION$(X%)) < 1 CAPTION X%, (ASC(CAPTION$(X%))) : SET_FOCUS 0 ELSE TEMP% = VAL(CAPTION$(X%)) CAPTION X%, CHR$(TEMP%) : SET_FOCUS 0 END_IF RETURN REM ============================================================================ EVENT_RAFRAICHIR: MARK_ON 28 REMPLISSAGE() RETURN ' ---------------------------------- EVENT_FINDCAPSLOCK: IF CAPTION$(32)= "CapsLock_Off" MODE$ = maj$ REMPLISSAGE() CAPTION 32 , "CapsLock_On" MARK_ON 29 ELSE MODE$ = min$ REMPLISSAGE() CAPTION 32 , "CapsLock_Off" MARK_ON 28 END_IF RETURN
' ---------------------------------- ' ---------------------------------- ' Routines .......................... ' ---------------------------------- SUB REMPLISSAGE() FOR X% = 1 to 26 CAPTION X%, MID$(MODE$,X%,1) : ON_CLICK X%,LBL_CONVERSION NEXT X% END_SUB ' ---------------------------------- A bientôt.
Dernière édition par Fhoest le Jeu 8 Jan 2015 - 16:14, édité 1 fois | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Jeu 8 Jan 2015 - 0:40 | |
| - Jean Claude a écrit:
- Mais moi je constate que Fhoest progresse à la la vitesse "CRAND_V"
Quand j’ai écrit que mes yeux sont fatigués, je ne parlais pas seulement de moi ! @Fhoest Dans très peu de temps, tu te sentiras fort à l’aise avec PANORAMIC. Comme la plus part des Panoramiciens ici, j’ai ‘flirté’ un peu avec plusieurs sortes de BASIC en plus d’une poignée d’autres langages. Ce qui m’a séduit de Panoramic, c’est sa simplicité dans la syntaxe pour une excellente performance. Et n’oublions pas la communauté de panoramiciens fort sympathiques. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Conversion ascii alphabet Jeu 8 Jan 2015 - 10:08 | |
| L'un de ses point faible est son éditeur et le mode debuggage, alors un conseil, regarde l'éditeur qu'à créé Klaus, il apporte plusieurs fonctionnalités interessantes pour les macros, l'impression et le débuggage (entre autre) | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Jeu 8 Jan 2015 - 16:17 | |
| Bonjour, je vais voir le mode debug et autre merci. j'ai modifier légèrement le deuxième code donner plus haut car ma touche Capslock n'était plus prises en compte lors du rajout de code pour vérification de l'état du clavier, (déplacement du SET_FOCUS 0 avant le END) A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 8 Jan 2015 - 16:36 | |
| La dll de Klaus pourrait réduire ton programme de quelques lignes avec l' appel pour connaitre l etat du clavier ( caps lock )... ...moi je dis ça...mais je dis rien. | |
| | | Contenu sponsorisé
| Sujet: Re: Conversion ascii alphabet | |
| |
| | | | Conversion ascii alphabet | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |