Extraction chaine caractère [Résolu]

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

7 réponses

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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rescator68
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
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)
Commenter la réponse de jmf0
Messages postés
24
Date d'inscription
dimanche 13 juillet 2003
Statut
Membre
Dernière intervention
5 novembre 2011
0
Merci
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


 


 
Commenter la réponse de cs_rescator68
Messages postés
24
Date d'inscription
dimanche 13 juillet 2003
Statut
Membre
Dernière intervention
5 novembre 2011
0
Merci
heu.... dur ce soir....

vous n'auriez pas un exemple de la fonction SPLIT sous la main ?
Commenter la réponse de cs_rescator68
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
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
Commenter la réponse de jmf0
Messages postés
24
Date d'inscription
dimanche 13 juillet 2003
Statut
Membre
Dernière intervention
5 novembre 2011
0
Merci
juste fait un copie  colle

j'ai l'ereur suivante

erreur de compilation

tableau attendu

j'imagine qu'ili faut dimensionner I ???
Commenter la réponse de cs_rescator68
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
I à dimensionner en integer
Commenter la réponse de jmf0