URGENT traitement de chaine sur reception port serie

cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005 - 26 mars 2005 à 01:05
cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005 - 26 mars 2005 à 22:22
voila la partie de source que j'utilise pour recevoir les infos du port serie en utilisant le MScontrol comm
Private Sub MSComm1_OnComm()
Dim tampon As String


Select Case MSComm1.CommEvent
Case comEvReceive
tampon = tampon & MSComm1.Input
Call Traitement(tampon) 'traitement données

End Select


End Sub


Private Sub Traitement(tampon As String)


Text2.SelText = tampon
Label1.Caption = tampon

sur le text2 j'affiche 130 kg B
sur le label1j'affiche 0 kg B

la chaine que je recois sur le text2 correspond bien a ma chaine complete mais je ne veut recuperer que le poids

si j'utilise
text2.seltext = mid(tampon,1,6)
label1.caption = mid (tampon,1,6)
sur le text2 j'affiche 0kg B
sur le label1.caption 0kg B
comment faire pour avoir la partie de chaine qui m'interesse
merci d'avance de votre aide

5 réponses

pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
26 mars 2005 à 15:22
PAT

C'est pas trés clair, tout çà !

Dis-nous exactement ce que tu reçois et ce que tu veux extraire.
0
cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005
26 mars 2005 à 16:06
je recois de la balance ___130Kg B cr lf la longueur de la chaine depend du poids
sur la balance

et je n'arrive pas a extraire le poids pour l'afficher dans un label
autre exemple
je recois $MP000023 130kg 1200
je veut extraire le numero 23 et le poids pour l'afficher dans 2 label differents
mais par contre j'arrive a afficher cette chaines completes dans une textbox
Merci d'avance de votre aide
0
cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005
26 mars 2005 à 17:43
en fait
dans mon champ label il ne m'affiche que les 5 derniers caracteres de ma chaine
merci de votre aide
0
pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
26 mars 2005 à 17:53
PAT

OK ! Donc, on a la chaine suivante: "MP000023 130kg 1200"

On va aller chercher la position du premier espace.
dim str as string
dim n as integer
str = MP000023 130kg 1200
n = instr(1,s," ")
Dans l'exemple, n vaut 9.

Ensuite, on va extraire de str la partie poids.

str = mid(n+1,str,len(str))

str devient "130kg 1200"

En suivant mes exemples, tu devrais pouvoir rapidement récupérer "130kg".

A plus ! En cas de souci, je peux faire plus.
0

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

Posez votre question
cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005
26 mars 2005 à 22:22
cela ne fonctionne pas car ce que je recois est variable
par contre je pense que mon premier soucis vient du fait que ne n'arrive pas a visualiser ma chaine complete sur un champ label
voici mon code
Private Sub MSComm1_OnComm()
Dim Tampon As String


Select Case MSComm1.CommEvent
Case comEvReceive
Tampon = MSComm1.Input & Tampon
Call Traitement(Tampon) 'traitement données
Case comEvSend ' il y a des caractères à envoyer


End Select


End Sub


Private Sub Traitement(chaine As String)



'cette procédure sert à traiter l’information reçue dans le tampon
Text2.SelStart = Len(Text2.Text)
Text2.SelText = chaine
Label1.Caption = chaine

End Sub
dans mon champ text2 je recois bien ma chaine complete :
$MP0000013 12140kg11

par contre dans mon champ label1 je ne recois que
40kg11
si je pouvais afficher l'ensemble de ma chaine dans mon champ label,apres l' extraction serait plus facile
merci de ton aide
0
Rejoignez-nous