Lecture de fichier texte et concatenation

Signaler
Messages postés
9
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
26 mai 2009
-
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
-
bonjour,

je lis un fichier texte, les donnees ont  la forme suivante : a,b,c,d,e,f
j ai sur plusieurs ligne a,b,c,,e, et a,b,c,d,, ou a,b,c sont identiques je cherche  a faire  a,b,c,d,e, et effacer les 2 autres lignes comment faire ?
j utilise la fonction :
  Open "c:\test.txt" For Input As #1


         Do While Not (EOF(1))
         Input #1, a, b, c, d, e, f ' 
      
      Loop

j ai donc a,b,c,d,e,f  mais je suis bloqué a la comparaison

merci d avance

11 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
52
Salut,

Désolé mais je n'est absolument rien compris, j'espère que je serai le seul, et que tu pourras trouver de l'aide.
Sinon essaies d'expliquer un peu plus clairement le problème.

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
+1 avec toi, jrivet
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
8
Salut,

VB.NET? Utilise IO.File.ReadAllLines()

Après, pour le traitement, c'est effectivement pas très clair
Messages postés
9
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
26 mai 2009

ok la question est pas tres claire donc je joins un exemple:
j ai donc un fichier avec des donnees sous la forme suivante:
7622142,21,697,9999,,
1258,25,699,,0,
7622142,21,697,,0,
1254,24,698,10,,
1262,25,700,,0,
1254,24,698,,0,
7704271,21,698,,,5
7704271,23,698,,2,
etc...
Si le numero  7622142 se trouve plusieurs fois dans le fichier  je souhaite faire l action suivante
7622142,21,697,9999,,0, et suprimer les 2 anciennes lignes
Si le numero 1254
1254,24,698,10,0,,
Si le numero 7704271
7704271,23,698,,2,5
a la fin j aimerai avoir le fichier suivant
7622142,21,697,9999,,0
1258,25,699,,0,
1254,24,698,10,0,,
7704271,23,698,,2,5
1262,25,700,,0,
etc
le tous sous visual basic merci d avance et pardon si je n ai pas ete tres claire la premiere fois
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
52
Salut,
Effectivement c'est déjà beaucoup plus clair.
En revanche le code que tu proposes semble être [forum-VISUAL-BASIC_1.aspx Visual Basic 6], et tu as choisi [forum-VB-NET-VB-2005_40.aspx VB.NET et VB 2005] comme section.

Quelle est donc la version de  que tu utilises: [forum-VISUAL-BASIC_1.aspx Visual Basic 6], ou [forum-VB-NET-VB-2005_40.aspx VB.NET et VB 2005]?

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
9
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
26 mai 2009

Visual Basic 6
j
Messages postés
9
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
26 mai 2009

Visual Basic 6
j ai
Messages postés
9
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
26 mai 2009

Visual Basic 6
j ai du
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
52
Re,
NOTE sur ton exemple:

Pourquoi
7704271,21,698,,,5
7704271,23,698,,2,

Deviendrait il

7704271,23,698,,2,5 ?????

Que faire si nous avons?

1254,24,698,10,1,
1254,24,698,,0,

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
9
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
26 mai 2009

7704271,21,698,,,5 7704271,23,698,,2, deviendrait 7704271,23,698,,2,5 car 2 et 5 indiquent des problemes different sur
la meme reference (7704271,23,698)
pour le cas:
1254,24,698,10,1, 1254,24,698,,0, il ne doit jamais arriver car on ne peut avoir qu un probleme a la fois (soit 1 ou 0)
merci encore pour votre aide
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
8
"7704271,21,698,,,5  7704271,23,698,,2, deviendrait 7704271,23,698,,2,5  car 2 et 5 indiquent des problemes different sur


la meme reference (7704271,23,698)"


La même référence? Pourquoi 7704271,21,698 deviendrait-il 7704271,23,698? Comment savoir que le 21 doit devenir un 23?

Donc, à part pour ce que je viens de dire, il semblerait qu'il faut vérifier que les 3 premiers nombres soient équivalents, si c'est le cas, on les groupe:

Parcourir chaque ligne du fichier
    Vérifier les 3 1er nombres, et ajouter la ligne à la bonne collection (celle qui contient toutes les ligne commençant par la référence en question. Si elle n'existe pas, la créer)

Après, c'est difficile à expliquer....
Pour chaque collection contenant les lignes ayant la même référence:
Parcourir chaque groupe de nombre (séparé par une virgule) de la 1ère ligne :
Si le groupe ne contient pas de nombre (,,), on cherche le nombre dans les autres lignes ayant la même référence

Voilà...