Extraction chaine caractère [Résolu]

Signaler
Messages postés
24
Date d'inscription
dimanche 13 juillet 2003
Statut
Membre
Dernière intervention
5 novembre 2011
-
Messages postés
24
Date d'inscription
dimanche 13 juillet 2003
Statut
Membre
Dernière intervention
5 novembre 2011
-
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

Messages postés
24
Date d'inscription
dimanche 13 juillet 2003
Statut
Membre
Dernière intervention
5 novembre 2011

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
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
4
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)
Messages postés
24
Date d'inscription
dimanche 13 juillet 2003
Statut
Membre
Dernière intervention
5 novembre 2011

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


 


 
Messages postés
24
Date d'inscription
dimanche 13 juillet 2003
Statut
Membre
Dernière intervention
5 novembre 2011

heu.... dur ce soir....

vous n'auriez pas un exemple de la fonction SPLIT sous la main ?
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
4
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
Messages postés
24
Date d'inscription
dimanche 13 juillet 2003
Statut
Membre
Dernière intervention
5 novembre 2011

juste fait un copie  colle

j'ai l'ereur suivante

erreur de compilation

tableau attendu

j'imagine qu'ili faut dimensionner I ???
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
4
I à dimensionner en integer