rico350
Messages postés7Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention18 avril 2005
-
19 nov. 2004 à 21:32
gandalflegris007
Messages postés211Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention11 juin 2007
-
22 nov. 2004 à 09:13
J'ai un fichier texte formaté de la façon suivante (il ne comporte que des caractères alphanumérique et des espaces) :
---
aaaaaa ccccccc eeeee ggggg
aaaaaabbbccc cc eee ggg
b b dddd eeefff
---
Il est donc composé d'un certain nombre de ligne composé de "colonne".
La largeur des colonnes est fixe (la colonne 1 fait 6 caractères, la colonne 2 fait 3 caractères,etc...).
Pas de caractères séparateur entre les colonnes.
Une colonne de capacité 6 caracteres peut en comporter 6 ou moins voir 0 (que des espaces).
Savez vous si je peut de manipuler les "colonnes". Par exemple, inverser les données des colonnes 4 et 6 sans trop de code ?
sinon y a peut etre un soft qui existe pour cela ?!...
rico350
Messages postés7Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention18 avril 2005 19 nov. 2004 à 21:39
cela ne se voit pas dans mon poste precedent a cause du forum, mais je reprise bien que la largeur des colonnes est fixe (la colonne 1 fait 6 caractères, la colonne 2 fait 3 caractères,etc...) meme en l'absence de caracteres.... j'sais pas si j'suis clair...
gandalflegris007
Messages postés211Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention11 juin 2007 20 nov. 2004 à 11:14
Salut rico350,
je ne comprends pas bien ton exemple ?
en gros tu récupères tes caractères un a un et tu les colles dans ta ligne, ça revient au même que myligne2=myligne
si ton objetif était uniquement d'insérer un séparateur pour y faire un split derrière il y a la fontion replace sur le texte.
> replace myligne(" ";";")
00000000 11111111 22222222 devient 00000000;11111111;22222222
ensuite ton split sur ";" devient basique ...
gandalflegris007
Messages postés211Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention11 juin 2007 20 nov. 2004 à 11:17
Salut rico350,
je ne comprends pas bien ton exemple ?
en gros tu récupères tes caractères un a un et tu les colles dans ta ligne, ça revient au même que myligne2=myligne
si ton objetif était uniquement d'insérer un séparateur pour y faire un split derrière il y a la fontion replace sur le texte.
> replace myligne(" ";";")
00000000 11111111 22222222 devient 00000000;11111111;22222222
ensuite ton split sur ";" devient basique ...
rico350
Messages postés7Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention18 avril 2005 21 nov. 2004 à 13:18
il n'y a pas de caractere separateur entre mes colonnes, donc je reprend les caracteres un par un, je les mets dans myligne2, et j'ajoute le caractere ";" si je me trouve dans les positions val1, val2, val3,etc... sur ma ligne (la largeur des colonnes est fixe) :
For i = 1 To Len(myligne)
moncar = Mid(myligne, I, 1)
myligne2= myligne2 & moncar
if ( i=val1 or i=val2 or i=val3 or i=val4 or i=val5 or i=val6 or i=val7 or i=val8 or i=val9) then
myligne2= myligne2 & ";"
end if
Next
ensuite je travaille sur un fichier avec un caractere separateur et donc j'utilise split.