Positionnement de caractere

krypton78 Messages postés 4 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 16 février 2006 - 15 sept. 2004 à 17:50
krypton78 Messages postés 4 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 16 février 2006 - 16 sept. 2004 à 10:00
slt!
je suis nvx en vb et je souhaite pouvoir lire un fichier texte contenant des infos du style:
toto1 tutu1 titi1
toto2 tutu2 titi2
toto3 tutu3 tutu3
je souhaite ensuite pouvoir recuperer chaque colonne et les ecrire dans un ordre different genre:
tutu1 titi1 toto1
tutu2 titi2 toto2
tutu3 titi3 toto3
je ne peux pas utiliser le split car mon caractere separateur est un espace et qu'il arrive qu'il y en ait plusieurs a la suite. je sais que l'on peut definir a l'avance la position d'un caractere et ensuite recuperer un certain nombre de caractere dans une variable qu'on utilisera apres mais je ne sais pas le faire.
silvouplé aidez moi je craque!

6 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 sept. 2004 à 18:11
slut,

je sais pô trop si ca repond a ta question mais tu peux essayer avec les fonction Instr ou Mid ou left ou right.

y a plein de fonction.

est ce que tu a deja recupere les valeurs des lignes ?

@+
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
15 sept. 2004 à 19:13
Si tu ne peux pas utiliser split alors j'ai bien peur que tu sois dans l'impasse surtout si les champs n'on pas la même taille car dans ce cas il te faudrais un interpreteur pour "comprendre" l'ordre des colonnes et separer de maniere "intelligente" les données.

@+

E.B.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
15 sept. 2004 à 19:16
Avec le split() ca peut le faire tout de même !!
Dim Modif as Boolean, Temp as String, Col() as String

Open "Fichier.txt" For Input as #1
While Not EOF(1)
  Line Input #1,Temp            ' Lit une ligne
  while instr(temp, "  ") <> 0 ' Tant qu'il y a 2 espaces consécutif
    Temp = Replace$(Temp,"  "," ")  On les remplace par 1 seul
  Wend
  Erase Col          ' On efface le tableau pour plus de sureté
  Col = Split(Temp," ")    ' On splitte ...
  ' Traitement du tableau Col() à ta guise ...
 ......
Wend
Close #1


Christophe R.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
15 sept. 2004 à 19:17
Je trouve que tu es bien défaitiste sur ce coup EBArtSoft !!!

Christophe R.
0

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

Posez votre question
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
15 sept. 2004 à 19:29
crenaud76> ouai t'as raison, j'ai du sombrer dans la deprime %-6
Aller faut se reprendreje vais faire peté le vb6 ! lol

@+

E.B.
0
krypton78 Messages postés 4 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 16 février 2006
16 sept. 2004 à 10:00
merci pour voss reponses mais apres un ptit tour ds le msdn j'ai trouvé ma fonction magique mid().
ca me convient!! reste plus qu'a ecrire chaque ligne dans un nouveau fichier!!
merci en tt cas!
0
Rejoignez-nous