Lecture de fichier par ligne [Résolu]

Signaler
Messages postés
176
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
25 septembre 2006
-
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
-
J'aimerais lire un fichier texte ligne par ligne svp.
Voila ce que j'ai trouvé sur le net et ça a pas l'air de marcher:

Open str_path_cof For Input As #num_fic 'ouvert en lecture
While Not EOF(num_fic)
    Line Input #num_fic, Ligne
....
Wend

Le pb c'est que dans Ligne il ya tout le fichier.

Que faire ?

12 réponses

Messages postés
176
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
25 septembre 2006

Bon finalement j'ai réussi de manière un peu détournée.
Ya bien le caractère chr(10) à chaque fin de ligne dc je splitte d'abord le fichier par ce caractère suite à un Line Input.
Et je splitte une seconde fois chaque ligne avec ";" pour avoir chaque champ.
Ca fonctionne mais c'est bizarre que Line Input ne renvoie pas une ligne.
En même temps je ne me rappelle plus du caractère char(10) mais c'est peut être pas une fin de ligne.
Merci quand même à tous et à très bientot je pense
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,

Peu etre par ce que tout ton fichier est sur une ligne.

Fais voir ton fichier.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Mais Surtout: Règlement/FONT>
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Tout le fichier???
Ton fichier ne contient pas de retour chario?
Tu dois pouvoir gérer tes retour à la ligne toi même en fesant des test sur la longuer de la chaine "len(variable)" et temps que la longeur de la chaine est supperieur à la taille maxi d'une ligne tu verifi que il n'y à pas de retour chario dans la parti de chaine que tu veut recup puis avec "left(variable,taille)" tu recup ce "bout" de chaine. Ensuite tu supprime cette partie de chaine de ta variable "variable = right(variable,len(variable) - TailleLigne)"
Voila. Ques tu en pense?

D'oh! Nuts!
Mmmmm...
 DONUTS
Messages postés
182
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
14 mars 2011

je te conseille de ranger les lignes dans un tableau dynmique
public montab() as string
public dimtab as integer

public sub lecturefic()
dim numfic as integer
open monfichier for input as #numfic
dimtab = 0
while not eof(numfic)
redim preserve
line input #numfic, montab(dimtab)
dimtab = dimtab +1
wend
close
end sub
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
salut,

http://www.codyx.org/snippet_lire-toutes-lignes-fichier-texte_22.aspx
++
PCPT   [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
176
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
25 septembre 2006

Ya bien un retour chariot et une structure par ligne puisque c'est un fichier contenant des enregistrements de tuples avec des champs séparés par des points virgules (un .csv).
Mon but est de lire le fichier ligne par ligne est d'extraire les champs que je veux. Il doit bien y avoir une méthode de lecture par ligne en VB quand même ?
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

La méthode pour lire ligne par ligne est "Line Input" soit ce que tu à mit plus haut. Cas dois venir de ton fichier je pense. Test tes carac de fin de ligne (fonction asc(carac) retourn le code ASCII du carac passé) voir si tes retour chario sont bien des chr(13) & chr(10) (à moin que se soit 10 pouis 13 je ne sais jamais.). Si c'est le cas (13 & 10 en fin de ligne) je ne sais pas.

D'oh! Nuts!
Mmmmm...
 DONUTS
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,

Ca me tracasse un peu ton truc quand meme.

Envoie moi (si cela t'interresse) ton fichier text à: epsylon9@gmail.com

Car la je vois pas le souci.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Mais Surtout: Règlement/STRONG> 
Messages postés
176
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
25 septembre 2006

C'est quand même étrange parce que j'ai beau tester de mettre un retour chariot à la fin des lignes pour tester et bien indiquer que c'est une et une seule ligne et ça ne fait rien.
En gros le fichier est de ce style :

001;00;25;joji;4654;51314;468768;4;1;2
001;00;25;joji;4654;51314;468768;4;1;2

Dans Ligne il y a ces 2 lignes (tout le fichier dans mon cas) et comme il n'y a pas de séparateur entre la fin de la première "ligne" et le début de la deuxième, le split avec un ";" donne ce champ : 2 (retour chariot) 001.

Voila jsais pas trop quoi faire
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Si tu fais un split(chr(13)) cas te donne quoi?

D'oh! Nuts!
Mmmmm...
 DONUTS
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Envoie quand meme le fichier au moins je suis sur d'avoir la meme configuration.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Mais Surtout: Règlement/STRONG> 
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Il me semble que chr(10) c'est retour à la ligne et chr(13) est fin de ligne. Ton fichier me semble bizar, mais bon si ca marche.

Pense à acepter la réponce qui t'a permis de résoudre ton problème.

A+
D'oh! Nuts!
Mmmmm...
 DONUTS