tedparker
Messages postés176Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention25 septembre 2006
-
29 juin 2006 à 17:02
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
30 juin 2006 à 10:25
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
tedparker
Messages postés176Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention25 septembre 2006 30 juin 2006 à 10:23
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
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 29 juin 2006 à 17:14
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?
cs_kazer04
Messages postés182Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention14 mars 2011 29 juin 2006 à 17:33
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
tedparker
Messages postés176Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention25 septembre 2006 30 juin 2006 à 09:32
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 ?
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 30 juin 2006 à 09:36
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.
tedparker
Messages postés176Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention25 septembre 2006 30 juin 2006 à 09:56
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 :
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.