cs_rescator68
Messages postés24Date d'inscriptiondimanche 13 juillet 2003StatutMembreDernière intervention 5 novembre 2011
-
1 févr. 2009 à 19:42
cs_rescator68
Messages postés24Date d'inscriptiondimanche 13 juillet 2003StatutMembreDernière intervention 5 novembre 2011
-
1 févr. 2009 à 20:40
bonjour,
Je crain de poser une question pour débutant....Mais comme je ne trouve pas de solution.... je me lance
je reçois par un controle winsock par la fonction GETDATA une chaine de caractère de longueur variable ( voir ci-dessous)
<hr />
01/02/2009 19:20:46 *1522 19:20:55 01/02/09 E;Alarme14; Zone 14 F;Zone 14 12;01/02/2009 19:20:48 *1522 19:20:55 01/02/09 E;Alarme14; Zone 14 F;Zone 14 12;1523 19:20:57 01/02/09 fin alarme Zone 14 F;Zone 14 12;01/02/2009 19:20:50 *1522 19:20:55 01/02/09 E;Alarme14; Zone 14 F;Zone 14 12;
<hr />
il faut ensuite que je traite ces infos. j'y arrive très bien quand je n'ai qu'une info à la fois
du style : 01/02/2009 19:20:46 *1522 19:20:55 01/02/09 E;Alarme14; Zone 14 F;Zone 14 12;
par contre de temps en temps, surtout si des infos sont arrivées groupées quand la liason winsock était coupé, je ne sais pas comment séparer ces lignes d'informations.
à chaque fin d'une information, on retrouve toujours chr$(&hA)+chr$(&hD). je suis arrivé a sortir la première info du groupe, mais je ne sais pas comment ensuite traiter la suite de la chaine. je ne dois en aucun cas louper une des infos.
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 1 févr. 2009 à 19:54
Bonsoir,
es-tu bien certain de la manière dont tes "infos" sont séparées ?
Si oui, ton séparateur n'est autre qu'un VbCrLf
En utilisant la fonction split et vbcrlf, tu auras, dans l'array obtenu, une seule info par item de l'array.
Il te suffira alors de les traiter une par une, comme tu traites (tu le dis) avec succès une seule info (la 1ère)
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 1 févr. 2009 à 20:20
Sous la main, non, mais pourquoi pas à main levée ?
Exemple, donc, à main levée :
Private sub Command1_Click()
dim toto As string, titi as string
'constituons une chaîne séparée par des vbcrlf, pour exemple
toto = "aaaa bbb ccc" & vbCrLf & "ddd eeeeee fffff" & vbCrLf & "gggggg hh iiiii jjj"
Msgbox toto 'pour voir
'on éclate maintenant :
titi = Split(toto, vbCrLf)
for i = 0 to UBound(titi)
Msgbox titi(i)
next
end sub