Extraction chaine caractère

Résolu
cs_rescator68 Messages postés 24 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 5 novembre 2011 - 1 févr. 2009 à 19:42
cs_rescator68 Messages postés 24 Date d'inscription dimanche 13 juillet 2003 Statut Membre Derniè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;Alarme�14; Zone 14 �F;Zone 14 �12;01/02/2009  19:20:48  *1522 19:20:55 01/02/09 �E;Alarme�14; 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;Alarme�14; 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;Alarme�14; 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.

si qq à une idée.. je suis preneur

merci d'avance

7 réponses

cs_rescator68 Messages postés 24 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 5 novembre 2011
1 févr. 2009 à 20:40
vi c bon

fallait juste déclarer titi() as string

Merci.... je te ferais la bise à nouveal an..... ( en même temps je prend pas beaucoup de risque là...  ;-)

c'est fou comme on peut rester bloqué à une connerie

merci merci
3
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 7
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)
0
cs_rescator68 Messages postés 24 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 5 novembre 2011
1 févr. 2009 à 20:00
incroyable mais vrai.... moins de 10 minutes pour avoir une réponse...... Merci


 


Je vais tester cela...


 


si j'ai bien compris SPLIT en lisant l'aide en ligne, il est capable de séparer un varible en plusieurs


 


 
0
cs_rescator68 Messages postés 24 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 5 novembre 2011
1 févr. 2009 à 20:06
heu.... dur ce soir....

vous n'auriez pas un exemple de la fonction SPLIT sous la main ?
0

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

Posez votre question
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 7
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
0
cs_rescator68 Messages postés 24 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 5 novembre 2011
1 févr. 2009 à 20:34
juste fait un copie  colle

j'ai l'ereur suivante

erreur de compilation

tableau attendu

j'imagine qu'ili faut dimensionner I ???
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 7
1 févr. 2009 à 20:37
I à dimensionner en integer
0