Il n'y a donc pas de solution

damd Messages postés 121 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 8 août 2008 - 7 nov. 2002 à 10:53
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 - 8 nov. 2002 à 12:05
salut a tous

j'ai un bug dans mon programme : je recois des infos par le port serie et j'identifie le texte avec un select case. cependant, au cours d'un envoi, il y a un caractere aleatoire qui est generer par l'exterieur. je ne peux dond pas identifier ma chaine de caracteres.
j'ai deja ecris un message la dessus et on m'avais dis d'utiliser un tableau ou de faire un left.
mais ca ne marche pas et je me vois mal ecrire un case pour tous les caracteres du code ascii.
donc j'aurai voulu remplacer ce caractere par autre chose (un ? ou # par exemple, car quelqu'un m'avais dit que cela corespondait a un caractere ou un chiffre, mais ca ne marche pas)
j'ai essayer aussi de mettre des "ou" dans le case, mais ca ne fonctionne pas non plus (chr(40) or chr(41) or...)
donc si quelqu'un a une solution

merci

10 réponses

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
7 nov. 2002 à 10:57
tu peux mettre un exemple de ta chaine de caractere et de ton select case, histoire que je puise regarder :)
0
cs_Hobby Messages postés 116 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 17 septembre 2008
7 nov. 2002 à 11:53
La chaine reçue ne contient pas par hasard un crlf a la fin ?

a+
Olivier
Ps: avec ton code serait plus facile
0
cs_6Po Messages postés 105 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 22 janvier 2009
7 nov. 2002 à 13:33
Il est a quel endroit ton caracere aleatoire ?
Un petit exemple de 2 3 valeurs serait sympa si tu veux qu'on t'aide

==============
6Po

DreamersTeam HomePage
[mailto:6po@dreamersteam.org Email]
0
damd Messages postés 121 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 8 août 2008
7 nov. 2002 à 13:40
le texte que je recoit est :
"fin du parametrage

ok

veuillez vous deconnecter"
le caractere se situe apres "fin du parametrage" et la plupars du temps c'est : m ou ÿ ou þ ou ý et des fois c'en est un autre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
damd Messages postés 121 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 8 août 2008
7 nov. 2002 à 13:43
le texte que je recoit est :
"fin du parametrage

ok

veuillez vous deconnecter"
le caractere est apres "fin du parametrage".
il y a 4 retour charriot dans le texte
0
damd Messages postés 121 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 8 août 2008
7 nov. 2002 à 13:45
le texte que je recoit est :
"fin du parametrage

ok

veuillez vous deconnecter"
le caractere est apres "fin du parametrage".
je fais donc un case ("fin du parametrage" & vbcrlf & vbcrlf &"ok" & ...)
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
7 nov. 2002 à 13:59
if left(MaChaine,len(fin du parametrage)="fin du parametrage" then MaChaine="fin du parametrage" & right(Machaine,len(MaChaine)-len("fin du parametrage")-1)

ca doit supprimer le caractere de ta chaine.
0
damd Messages postés 121 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 8 août 2008
7 nov. 2002 à 16:31
ton idee est tres bonne et je suis persuade que ca aurai fonctionné car j'utilise l'instruction left pour un autre probleme.
mais en fait j'ai oublie de te dire que des fois, il n'envoie rien.
donc dans ce cas la, ca posera probleme parce que c'est un autre caractere qui va etre omis.
0
damd Messages postés 121 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 8 août 2008
7 nov. 2002 à 16:31
ton idee est tres bonne et je suis persuade que ca aurai fonctionné car j'utilise l'instruction left pour un autre probleme.
mais en fait j'ai oublie de te dire que des fois, il n'envoie rien.
donc dans ce cas la, ca posera probleme parce que c'est un autre caractere qui va etre omis.
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
8 nov. 2002 à 12:05
dans ce cas la, essaie en rajoutant
if mid(Machaine,len("fin du parametrage")+1,2)<>Vbcrlf then
...

histoire de controler que les 2 caracteres apres "fin du parametrage" soit Vbcrlf
=> si c pas le cas, on supprime le caractere en trop.
VbCrLf a 1 taille de 2 caractères, car correspond en fait a chr(13) + chr(10)
0
Rejoignez-nous