OVH Cloud OVH Cloud

Extraire des chiffres (Débutant)

7 réponses
Avatar
Karl
Bonsoir,
De mon port Comm, je récupère une série de chiffres (un par un) avec deux
caractères en
début et fin de la série, que je désire supprimer +0350*+0351*+0352* pour
retrouver 035003510352
* = caractère carré (je suppose un retour chariot)

Dans mon test j'écarte (Enfin j'essai) la série de chiffres de 0 à 9

If Buffer < Chr$(48) And Buffer > Chr$(57) Then Exit Sub
Text1.Text = Buffer

Ca marche pas, je retrouve les autres caractères avec.

Par la même occasion comment les coupler 4 par 4, vu, que je les reçois un
par un du port comm.

Merci

Karl

7 réponses

Avatar
Christian Hugoud
Essaye : str = replace (str, "*", "")

etc...

"Karl" a écrit dans le message de news:
45c602cb$0$4319$
Bonsoir,
De mon port Comm, je récupère une série de chiffres (un par un) avec deux
caractères en
début et fin de la série, que je désire supprimer +0350*+0351*+0352* pour
retrouver 035003510352
* = caractère carré (je suppose un retour chariot)

Dans mon test j'écarte (Enfin j'essai) la série de chiffres de 0 à 9

If Buffer < Chr$(48) And Buffer > Chr$(57) Then Exit Sub
Text1.Text = Buffer

Ca marche pas, je retrouve les autres caractères avec.

Par la même occasion comment les coupler 4 par 4, vu, que je les reçois un
par un du port comm.

Merci

Karl







Avatar
Patrice Henrio
Si CH est la chaîne récupérée, Début le début des nombres, T un tableau
d'entier
Dim T(1 to Len(CH)4)
Index=1
For I=Début to len(CH)-Début step 5
T(Index)=CInt( Mid(Ch,I,4)
Index=Index+1
Next I

cela doit fonctionner.

Christian Hugoud" a écrit dans le message de news:
%
Essaye : str = replace (str, "*", "")

etc...

"Karl" a écrit dans le message de news:
45c602cb$0$4319$
Bonsoir,
De mon port Comm, je récupère une série de chiffres (un par un) avec deux
caractères en
début et fin de la série, que je désire supprimer +0350*+0351*+0352* pour
retrouver 035003510352
* = caractère carré (je suppose un retour chariot)

Dans mon test j'écarte (Enfin j'essai) la série de chiffres de 0 à 9

If Buffer < Chr$(48) And Buffer > Chr$(57) Then Exit Sub
Text1.Text = Buffer

Ca marche pas, je retrouve les autres caractères avec.

Par la même occasion comment les coupler 4 par 4, vu, que je les reçois
un
par un du port comm.

Merci

Karl











Avatar
Jean-marc
Karl wrote:
Bonsoir,
De mon port Comm, je récupère une série de chiffres (un par un) avec
deux caractères en
début et fin de la série, que je désire supprimer +0350*+0351*+0352*
pour retrouver 035003510352
* = caractère carré (je suppose un retour chariot)

Dans mon test j'écarte (Enfin j'essai) la série de chiffres de 0 à 9

If Buffer < Chr$(48) And Buffer > Chr$(57) Then Exit Sub
Text1.Text = Buffer

Ca marche pas, je retrouve les autres caractères avec.



Hello,

Dans ton test, tu demandes à ce que le caractère soit *SIMULTANEMENT*
plus petit 48 ==>>>ET<=== (AND) plus grand que 57 ...

Ce n'est donc visiblement pas la bonne méthode.

Tu peux en revanche faire ceci:

(je suppose que "Buffer" est UN caractère)

If (Buffer < Chr$(48)) OR (Buffer > Chr$(57)) Then
Exit Sub
End If

Pour le groupage 4 par 4, les méthodes déjà indiquées sont parfaites :-)


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Karl
Bonsoir,
Merci pour le code.
Ouille! J'ai une erreur, Il me demande constante requise pour la chaîne CH
Karl


"Patrice Henrio" a écrit dans le message de
news: %
Si CH est la chaîne récupérée, Début le début des nombres, T un tableau
d'entier
Dim T(1 to Len(CH)4)
Index=1
For I=Début to len(CH)-Début step 5
T(Index)=CInt( Mid(Ch,I,4)
Index=Index+1
Next I

cela doit fonctionner.

Christian Hugoud" a écrit dans le message de
news: %
Essaye : str = replace (str, "*", "")

etc...

"Karl" a écrit dans le message de news:
45c602cb$0$4319$
Bonsoir,
De mon port Comm, je récupère une série de chiffres (un par un) avec
deux caractères en
début et fin de la série, que je désire supprimer +0350*+0351*+0352*
pour
retrouver 035003510352
* = caractère carré (je suppose un retour chariot)

Dans mon test j'écarte (Enfin j'essai) la série de chiffres de 0 à 9

If Buffer < Chr$(48) And Buffer > Chr$(57) Then Exit Sub
Text1.Text = Buffer

Ca marche pas, je retrouve les autres caractères avec.

Par la même occasion comment les coupler 4 par 4, vu, que je les reçois
un
par un du port comm.

Merci

Karl















Avatar
Karl
Ok ça marche,
Merci
Bonne fin de soirée
Karl

"Christian Hugoud" a écrit dans le message de news:
%
Essaye : str = replace (str, "*", "")

etc...

"Karl" a écrit dans le message de news:
45c602cb$0$4319$
Bonsoir,
De mon port Comm, je récupère une série de chiffres (un par un) avec deux
caractères en
début et fin de la série, que je désire supprimer +0350*+0351*+0352* pour
retrouver 035003510352
* = caractère carré (je suppose un retour chariot)

Dans mon test j'écarte (Enfin j'essai) la série de chiffres de 0 à 9

If Buffer < Chr$(48) And Buffer > Chr$(57) Then Exit Sub
Text1.Text = Buffer

Ca marche pas, je retrouve les autres caractères avec.

Par la même occasion comment les coupler 4 par 4, vu, que je les reçois
un
par un du port comm.

Merci

Karl











Avatar
Karl
"Jean-marc" a écrit dans le message
de news: eq5a89$hpo$
Karl wrote:
Bonsoir,
De mon port Comm, je récupère une série de chiffres (un par un) avec
deux caractères en
début et fin de la série, que je désire supprimer +0350*+0351*+0352*
pour retrouver 035003510352
* = caractère carré (je suppose un retour chariot)

Dans mon test j'écarte (Enfin j'essai) la série de chiffres de 0 à 9

If Buffer < Chr$(48) And Buffer > Chr$(57) Then Exit Sub
Text1.Text = Buffer

Ca marche pas, je retrouve les autres caractères avec.



Hello,

Dans ton test, tu demandes à ce que le caractère soit *SIMULTANEMENT*
plus petit 48 ==>>>ET<=== (AND) plus grand que 57 ...

Ce n'est donc visiblement pas la bonne méthode.

Tu peux en revanche faire ceci:

(je suppose que "Buffer" est UN caractère)

If (Buffer < Chr$(48)) OR (Buffer > Chr$(57)) Then
Exit Sub
End If

Pour le groupage 4 par 4, les méthodes déjà indiquées sont parfaites :-)


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/





C'était Or, non And.
J'aurai du réfléchir un peu plus.
Merci
Cordialement
Karl
Avatar
Karl
Ok voila! c'est bon maintenant, mais je les affiches toujours un par un.
Karl

"Patrice Henrio" a écrit dans le message de
news: %
Si CH est la chaîne récupérée, Début le début des nombres, T un tableau
d'entier
Dim T(1 to Len(CH)4)
Index=1
For I=Début to len(CH)-Début step 5
T(Index)=CInt( Mid(Ch,I,4)
Index=Index+1
Next I

cela doit fonctionner.

Christian Hugoud" a écrit dans le message de
news: %
Essaye : str = replace (str, "*", "")

etc...

"Karl" a écrit dans le message de news:
45c602cb$0$4319$
Bonsoir,
De mon port Comm, je récupère une série de chiffres (un par un) avec
deux caractères en
début et fin de la série, que je désire supprimer +0350*+0351*+0352*
pour
retrouver 035003510352
* = caractère carré (je suppose un retour chariot)

Dans mon test j'écarte (Enfin j'essai) la série de chiffres de 0 à 9

If Buffer < Chr$(48) And Buffer > Chr$(57) Then Exit Sub
Text1.Text = Buffer

Ca marche pas, je retrouve les autres caractères avec.

Par la même occasion comment les coupler 4 par 4, vu, que je les reçois
un
par un du port comm.

Merci

Karl