FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» A propos des attributs de fichier
par Oscaribout Aujourd'hui à 1:53

» Problème de math
par Marc37 Hier à 23:04

» Problème de math
par braveen Hier à 21:40

» I Love You
par papydall Hier à 19:22

» Un petit "coucou" à tous les Panoramiciens !
par mindstorm Hier à 17:06

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Conversion ascii alphabet

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
Fhoest



Nombre de messages : 34
Age : 41
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Conversion ascii alphabet   Mer 7 Jan 2015 - 7: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 7 Jan 2015 - 8:35

De très bon début Fohest.

Même si certains allergiques au "goto" vont se manifester Very Happy,
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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5040
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 10: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é. Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5953
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 11: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).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 13: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 7 Jan 2015 - 17: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fhoest



Nombre de messages : 34
Age : 41
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 17: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

Nombre de messages : 5040
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 17: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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5547
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 17: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Fhoest



Nombre de messages : 34
Age : 41
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 18: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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
JL35



Nombre de messages : 5953
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 19: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5547
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 20: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 7 Jan 2015 - 20: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...

lol!
...et tu n' as pas eu encore les plus loufoques de l' équipe.
Certains sont encore coincés sur une autre planète alien .
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5547
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 20:12

Tu veux parler du MARTIEN pour ne pas le nommer ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 7 Jan 2015 - 20:25

Oui, oui, lui même ainsi que du maître de la 3D... Laughing

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 ?... scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5040
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 20:43

Salut Forest,

Laisses les débiles qui sont intervenus plus haut  lol!


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 Very Happy

Bon, je sort... Embarassed

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: RE   Mer 7 Jan 2015 - 21: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...
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fhoest



Nombre de messages : 34
Age : 41
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 21: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  lol!
si vous avez autant de patience que moi on va bien s'amuser.
A+ et merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
papydall

avatar

Nombre de messages : 5547
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 22: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
' ---------------
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Jean Claude

avatar

Nombre de messages : 5040
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Conversion ascii alphabet   Mer 7 Jan 2015 - 23: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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fhoest



Nombre de messages : 34
Age : 41
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Conversion ascii alphabet   Jeu 8 Jan 2015 - 0: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
affraid
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 - 18:14, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
papydall

avatar

Nombre de messages : 5547
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Conversion ascii alphabet   Jeu 8 Jan 2015 - 2: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 !  Laughing

@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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Conversion ascii alphabet   Jeu 8 Jan 2015 - 12: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)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fhoest



Nombre de messages : 34
Age : 41
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Conversion ascii alphabet   Jeu 8 Jan 2015 - 18: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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 8 Jan 2015 - 18: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. Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Conversion ascii alphabet   

Revenir en haut Aller en bas
 
Conversion ascii alphabet
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Conversion ascii alphabet
» Conversion fichier MVK
» Conversion 25p/24p
» [Résolu] Problème conversion mpeg2-DVD
» conversion gdb en gpx ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: