Transformer un texte en tableau

Djalka Messages postés 14 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 16 mai 2006 - 1 déc. 2003 à 13:54
Djalka Messages postés 14 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 16 mai 2006 - 2 déc. 2003 à 12:21
Comment faire pour transformer un texte en tableau ?
je m'explique, j'ai un texte de ce type :

a;b;c;d
a;b;c;d
a;b;c;d;a;e
a;b;c;d
a;b;c;d
a;b;c;d;f;g
a;b;c;d

je voudrais le transformer en tableau a 2 dimensions (avec comme délimiteur le ";") (c'est ce que fait Excel ) pour ensuite lui dire de supprimer les champs en trop (je veux au final obtenir uniquement sur chaque ligne a;b;c;d).

5 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
1 déc. 2003 à 16:02
Question : Pourquoi ne pas tout simplement compter les points virgules et virer ce qui se trouve après le Nième ';' ?

Manu
0
Djalka Messages postés 14 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 16 mai 2006
1 déc. 2003 à 17:57
C'est en effet une très bonne idée mais ...

... je suis newbe en vb6, comment peut on compter les ";" et virer tout ce qui se trouve apres le 4eme (dernier ; inclus) et ceci en faisant une boucle car il faut le faire pour chaque ligne du fichier ?
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
1 déc. 2003 à 18:23
Exemple de boucle pas super optimisée,mais qui doit fonctionner.

function vireAuDelaDuNieme(s as string, n as Long) as string
Dim count as Long 'compteur de ;
Dim i as Long

count = 0
For i=1 to Len(s)
If Mid(s,i,1)=";" Then
count=count+1
If count=n Then
Exit For
End If
End If
Next i
vireAuDelaDuNieme=Mid(s,1,i-1)
End Function

-----------------------------------------------------
Et tu l'appelles comme ceci :

nouvelle_chaine = vireAuDelaDuNieme("a;b;c;d;e;f",4)

Manu
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
1 déc. 2003 à 18:28
ATTENTION : J'ai fait une (petite) boulette juste au dessus !

Il faut écrire

vireAuDelaDuNieme=Mid(s,1,i)

et non : vireAuDelaDuNieme=Mid(s,1,i-1)

sinon, tu n'intègres pas le dernier ";"

Manu
0

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

Posez votre question
Djalka Messages postés 14 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 16 mai 2006
2 déc. 2003 à 12:21
merci,

et je fais comment si je veux boucler pour scanner ttes les lignes d'un fichier ?
0
Rejoignez-nous