Weather / Spam / www |
Lyon Weather
aldweb against spam
|
|
|
|
|
|
|
- Forum - iziBasic
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 257
Topic # 1070 |
Test sur un caractère |
21/01/2005 @ 15:53 by apdi2003
|
Dans un programme de saisie, l'opérateur entre des caractères et j'ai besoin de savoir si ce sont des chiffres, des lettres ou autre chose. Il y a des plages de valeur Ascii pour cela mais je ne vois pas comment les exploiter avec iziBasic.
En gros j'aimerais pouvoir écrire : a=asc(a$) if a>47 and a<58 let b$="c'est un chiffre" mais je bute sur le fait que les if ne peuvent pas être imbriqués. Un opérateur d'appartenance ne serait pas mal non plus. Ou ...
En attendant votre soutien, je vais prendre un aspegic. |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 1 -------- 22/01/2005 @ 09:55 by apdi2003
visitor |
Bonjour,
Je me réponds à moi-même pour ne pas laisser la question pendante. J'utilise une collection de case : case 47, case 48 ... mais je ne trouve pas ça très élégant et heureusement je ne m'intéressais qu'aux chiffres. Le jour où je devrai piéger les minuscules et les majuscules !
Dans QuickBasic il y avait la structure : Case <condition> [<instruction>] qui permettait d'écrire : case 48 to 57 serait-ce une piste ?
Cordialement.Apdi2003 |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 2 -------- 22/01/2005 @ 12:05 by aldweb
visitor |
Tu peux faire comme ceci :
{PARSER ON} b=(a>47) and (a<58) {PARSER OFF} if b=true let b$="c'est un chiffre" Ou encore plus simplement :
if a>47 if a<58 let b$="c'est un chiffre"
Bravo pour l'aspegic, ça me paye à la fin du mois
@+ aldweb |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 3 -------- 22/01/2005 @ 13:15 by apdi2003
visitor |
Bonjour Alweb
C'est décidé : je ne lirai plus les doc.
J'avais lu que derrière un IF on ne pouvait pas mettre un autre IF et je cherchais midi à 14 heures.
Chapeau l'artiste. D'où l'utilité du forum et de la nécessaire humilité pour avouer ce qu'on ne sait pas faire. |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 4 -------- 22/01/2005 @ 14:16 by aldweb
visitor |
Bonjour apdi2003,
Surtout change de décision !
Si en lisant une doc, tu ne comprends pas, c'est que la doc est mal écrite. Donc, je vais essayer d'expliquer la chose...
Tu peux mettre plusieurs IF l'un derrière l'autre dans la formulation monoligne de IF. Sauf qu'aucun de ces IF ne doit être suivi d'un THEN.
Il va falloir que je reprenne le IF, qui est l'instruction la plus fondamentale, pour l'améliorer face à ses limitations actuelles.
A l'origine, j'ai construit cette instruction un peu comme un WHILE A=1:A=0:[instruction]:WEND ce qui n'est pas très bien et amène quelques artéfacts...
@+ aldweb |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 5 -------- 24/01/2005 @ 08:49 by apdi2003
visitor |
Merci Aldweb d'avoir écrit les programmes exemples.
J'ai repris Nekocat qui est une démonstration magistrale d'utilisation du IF et je n'aurais jamais du m'autolimiter ainsi. Je projette d'assimiler la cage d'ascenseur au chat et le clic du stylet à la nourriture pour déplacer l'enregistrement courant. Rien que l'idée m'amuse déjà.
Cordialement. Apdi2003 |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 6 -------- 24/01/2005 @ 21:07 by aldweb
visitor |
Puis-je te proposer une petite interrogation écrite pour toi cher ami apdi2003 ?
Comment corriger la ligne suivante pour qu'elle marche dans iziBasic ?
if a<=47 or a>=58 let b$="ce n'est pas un chiffre"
@+ aldweb |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 7 -------- 24/01/2005 @ 21:50 by apdi2003
visitor |
Relevé des feuilles
{parser on} b=(a>47)*(a<58):if b=0 let b$="ce n'est pas un chiffre"
il existe sans doute d'autres possibilités.
A + apdi2003 |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 8 -------- 24/01/2005 @ 22:02 by aldweb
visitor |
Cette solution a le mérite d'être élégante. Surtout elle marche ! Donc elle est bonne Bravo à toi
@+ aldweb |
|
|
Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 9 -------- 24/01/2005 @ 22:14 by aldweb
visitor |
Impressionné par ta belle utilisation de la multiplication pour le OU logique, j'en oubliais le message subliminal : les IF test1 IF test2 IF test3 fais quelqueChose sont bien un équivalent du IF test1 ET test2 ET test3 fais quelqueChose
@+ aldweb |
|
|
topic active
topic closed
Sticky
New message -
Correct message
Close topic
Make sticky
|
|
|
|
|
|