Positionnement de caractere

Signaler
Messages postés
4
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
16 février 2006
-
Messages postés
4
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
16 février 2006
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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)
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
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.
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
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.
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Je trouve que tu es bien défaitiste sur ce coup EBArtSoft !!!

Christophe R.
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
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.
Messages postés
4
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
16 février 2006

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!