papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Fonctions sur les chaînes Mar 4 Fév 2014 - 0:17 | |
| Panoramic dispose de la fonction NUMERIC(C$) qui retourne 1 si C$ représente une valeur numérique, o sinon. Voici deux fonctions ALPHABETIC(C$) et ALPHANUMERIC(C$) qui testent si C$ représente une valeur alphabétique ou alphanumérique. - Code:
-
rem ============================================================================ rem Fonctions_Strings rem Par Papydall rem ============================================================================ ' Panoramic dispose de la fonction NUMERIC(C$) qui retourne 1 si C$ représente ' une valeur numérique, o sinon. ' Voici deux fonctions ALPHABETIC(C$) et ALPHANUMERIC(C$) qui testent si C$ ' représente une valeur alphabétique ou alphanumérique rem ============================================================================
Alphabetic("aze_rt") : message Alphabetic AlphaNumeric("abxc3") : message AlphaNumeric
end rem ============================================================================ ' Retourne Alphabetic = 1 si C$ ne contient que des lettres (a --> z, A --> Z) ' Retourne Alphabetic = 0 dans le cas contraire Sub Alphabetic(c$) dim_local l,i if variable("Alphabetic") = 0 then dim Alphabetic l = len(c$) for i = 1 to l if (asc(upper$(mid$(c$,i,1))) > 64) and (asc(upper$(mid$(c$,i,1))) < 91) Alphabetic = 1 else Alphabetic = 0 : exit_for end_if next i END_SUB rem ============================================================================ ' Retourne AlphaNumeric = 1 si C$ ne contient que des lettres et/ou des chiffres ' Retourne AlphaNumeric = 0 dans le cas contraire SUB AlphaNumeric(c$) dim_local l,i if variable("AlphaNumeric") = 0 then dim AlphaNumeric l = len(c$) for i = 1 to l if ((asc(upper$(mid$(c$,i,1))) > 64) and (asc(upper$(mid$(c$,i,1))) < 91)) or ((asc(mid$(c$,i,1)) > 47) and (asc(mid$(c$,i,1)) < 58)) AlphaNumeric = 1 else AlphaNumeric = 0 : exit_for end_if next i END_SUB rem ============================================================================
Dernière édition par papydall le Mar 4 Fév 2014 - 17:32, édité 1 fois (Raison : Correction d'un bug) | |
|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fonctions sur les chaînes Mar 4 Fév 2014 - 7:23 | |
| très utile, il semble que tu considère _ comme un caractère alphabétique. - Code:
-
Alphabetic("azert_y") : message "Alphabetic="+ str$(Alphabetic) AlphaNumeric("a09") : message "AlphaNumeric="+ str$(AlphaNumeric)
C'est discutable. 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: Fonctions sur les chaînes Mar 4 Fév 2014 - 17:33 | |
| Une fois de plus, je suis tombé dans le piège. J’ai mal utilisé mon algorithme. J’ai rectifié mon tir heu mon code. Voici le code correct. - Code:
-
rem ============================================================================ rem Fonctions_Strings rem Par Papydall rem ============================================================================ ' Panoramic dispose de la fonction NUMERIC(C$) qui retourne 1 si C$ représente ' une valeur numérique, o sinon. ' Voici deux fonctions ALPHABETIC(C$) et ALPHANUMERIC(C$) qui testent si C$ ' représente une valeur alphabétique ou alphanumérique rem ============================================================================
Alphabetic("aze_rt") : message Alphabetic AlphaNumeric("abxc3") : message AlphaNumeric
end rem ============================================================================ ' Retourne Alphabetic = 1 si C$ ne contient que des lettres (a --> z, A --> Z) ' Retourne Alphabetic = 0 dans le cas contraire Sub Alphabetic(c$) dim_local l,i if variable("Alphabetic") = 0 then dim Alphabetic l = len(c$) for i = 1 to l if (asc(upper$(mid$(c$,i,1))) > 64) and (asc(upper$(mid$(c$,i,1))) < 91) Alphabetic = 1 else Alphabetic = 0 : exit_for end_if next i END_SUB rem ============================================================================ ' Retourne AlphaNumeric = 1 si C$ ne contient que des lettres et/ou des chiffres ' Retourne AlphaNumeric = 0 dans le cas contraire SUB AlphaNumeric(c$) dim_local l,i if variable("AlphaNumeric") = 0 then dim AlphaNumeric l = len(c$) for i = 1 to l if ((asc(upper$(mid$(c$,i,1))) > 64) and (asc(upper$(mid$(c$,i,1))) < 91)) or ((asc(mid$(c$,i,1)) > 47) and (asc(mid$(c$,i,1)) < 58)) AlphaNumeric = 1 else AlphaNumeric = 0 : exit_for end_if next i END_SUB rem ============================================================================
| |
|
Contenu sponsorisé
| Sujet: Re: Fonctions sur les chaînes | |
| |
|