Lire un fichier texte [Résolu]

Signaler
Messages postés
898
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
22 mai 2021
-
Messages postés
898
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
22 mai 2021
-
Bonjour,
Je voudrais simplement lire un fichier texte créé avec le bloc-notes Windows.
Ce fichier contient plusieurs lignes, du moins quand je le visualise avec le bloc-notes.
Mon problème est que lorsque je lis ce fichier avec
Open ParFileName For Input As #1
Do While Not EOF(1)
Input #1, User
J'obtiens un seul string "User" contenant toutes les lignes à la queue leu leu, alors que je m'attendais à avoir une ligne par Input; ne voit-il donc pas les "retours ligne" ?
J'ai aussi essayé avec "Line Input" et aussi de construire le fichier avec Word au lieu de NotePad : idem !
Merci d'avance pour votre aide

4 réponses

Messages postés
14794
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 mai 2021
155
Essayes :
Line Input ...
Plutôt.
Messages postés
898
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
22 mai 2021
2
Comme indiqué dans la question, j'ai aussi essayé avec "Line Input" et aussi de construire le fichier avec Word au lieu de NotePad : idem !
Messages postés
2428
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
23 mai 2021
137
Salut
Line Input est correct !
quelle instruction après ce Line Input ?
Messages postés
898
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
22 mai 2021
2
Simplement Line Input #1, User
et si j'arrête avec debug sur le statement suivant, User contient tous les records du fichier à la queue leu leu.

J'ai trouvé l'origine du problème.
Le fichier en question est téléchargé d'Internet avec URLDownloadToFile (Lib "urlmon").
Sur Internet le ficher est correct.
Le fichier téléchargé ne contient qu'un record avec tout à la queue leu leu.
Alors fatalement quand je le lis avec Line Input je n'obtiens qu'une ligne !
Je ne sais pas comment corriger.
Messages postés
14794
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 mai 2021
155
C'est un grand classique, mais avec ton explication, ça va mieux.
Le fichier source a dû être créé avec Linux.
Les retours à la lignes ne sont pas les mêmes :
Windows : \r\n (CrLf)
Linux : \n (Lf)
Existe aussi : \r (Cr)

Donc, là où Windows attends CrLf, il ne trouve que Lf, donc pas de retour à la ligne.
Messages postés
898
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
22 mai 2021
2
Je voudrais simplement lire un fichier texte créé avec le bloc-notes Windows.
Messages postés
14794
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 mai 2021
155
"Le fichier en question est téléchargé d'Internet avec URLDownloadToFile"
"créé avec le bloc-notes Windows"
Je n'arrive plus à te suivre dans ton raisonnement.
Messages postés
898
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
22 mai 2021
2
Bonjour,
Il s'agit d'un fichier utilisé par un programme VB6; le contenu du fichier peut changer; par conséquent j'ai fait ainsi :
- je crée le fichier avec le bloc notes Windows;
- je charge le fichier sur Internet avec FileZilla;
- VB6 télécharge le fichier sur la machine de utilisateur du programme.

J'ai trouvé d'où vient le problème : le suffixe du fichier étant .txt FileZilla le considère comme un fichier Ascii et supprime CrLf !
Il a suffit que je nomme mon fichier xxx.par et ça fonctionne !
Messages postés
14794
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 mai 2021
155
Ou forcer le transfert en mode binaire (pas d'auto détection de type de fichier)
Messages postés
898
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
22 mai 2021
2
Effectivement.
Je ne comprends pas à quoi sert le type de transfert ASCII qui altère le fichier.