OVH Cloud OVH Cloud

probleme dans la lecture de fichier en vba

3 réponses
Avatar
ja
Bonjour,

D'habitude lorsque je recois des fichiers de type txt, je les traite en VBA
de maniere classique :

Open xx for input as #1
Do while not eof(1)
line input 1,zone
Loop
Close #1

Celà ne marche pas s' il s'agit de fichier où le retour à la ligne se fait
par "13" en ascii.
Lorque j'utilise le petit script précédent, le découpage en ligne ne se fait
pas.

Remarque empirique : ces fichiers sont bien vus par Wordpad , pas par
Notepad.



Si je n'ai pas été clair, ce script permet de créer un fichier de ce type :
Sub aa()
fichier = "c:\temp\aa.txt"
Open fichier For Output As #1
Print #1, "aaaaa " & Chr(13) & "apres 1er chr(13) "
Print #1, "bbbbb " & Chr(13) & "apres 2eme chr(13) "
Print #1, "ccccc " & Chr(13) & "apres 3eme chr(13) "
Close #1
End Sub


Par avance merci
Francois.

( je ne peux hélas pas intervenir dans la constitution de cesfichiers )

3 réponses

Avatar
jb
Tu peux:
-ouvrir le fichier en lecture
-ouvrir un autre fichier en écriture
-lire caractère par caractère le premier fichier avec c=input(#1,1)
-écrire dans le second fichier avec print #2,c
-Si Asc(c), tu ajoute un Chr(10)

Cordialement JB
Avatar
michdenis
Bonjour Ja,

Quel est la nature de ton problème ? Que fais-tu avec ce fichier texte qui est problématique ? Que voudrais-tu obtenir comme
résultat ? Quand tu fais la lecture de ton fichier texte, observe en plaçant ton curseur au dessus de la variable "zone", il scinde
bien les lignes à chaque caractère chr(13).

Open xx for input as #1
Do while not eof(1)
line input #1,zone
Loop
Close #1



Salutations!



"ja" a écrit dans le message de news: 43523c00$0$17205$

Bonjour,

D'habitude lorsque je recois des fichiers de type txt, je les traite en VBA
de maniere classique :

Open xx for input as #1
Do while not eof(1)
line input 1,zone
Loop
Close #1

Celà ne marche pas s' il s'agit de fichier où le retour à la ligne se fait
par "13" en ascii.
Lorque j'utilise le petit script précédent, le découpage en ligne ne se fait
pas.

Remarque empirique : ces fichiers sont bien vus par Wordpad , pas par
Notepad.



Si je n'ai pas été clair, ce script permet de créer un fichier de ce type :
Sub aa()
fichier = "c:tempaa.txt"
Open fichier For Output As #1
Print #1, "aaaaa " & Chr(13) & "apres 1er chr(13) "
Print #1, "bbbbb " & Chr(13) & "apres 2eme chr(13) "
Print #1, "ccccc " & Chr(13) & "apres 3eme chr(13) "
Close #1
End Sub


Par avance merci
Francois.

( je ne peux hélas pas intervenir dans la constitution de cesfichiers )
Avatar
Jacques93
Bonjour ja,

J'ai bien le comportement que tu décris avec Notepad et Wordpad, mais
avec VBA Excel 2003 ou VB6, ça tourne. OS : XP Pro SP2 et W2K Pro.

Bonjour,

D'habitude lorsque je recois des fichiers de type txt, je les traite en VBA
de maniere classique :

Open xx for input as #1
Do while not eof(1)
line input 1,zone
Loop
Close #1

Celà ne marche pas s' il s'agit de fichier où le retour à la ligne se fait
par "13" en ascii.
Lorque j'utilise le petit script précédent, le découpage en ligne ne se fait
pas.

Remarque empirique : ces fichiers sont bien vus par Wordpad , pas par
Notepad.



Si je n'ai pas été clair, ce script permet de créer un fichier de ce type :
Sub aa()
fichier = "c:tempaa.txt"
Open fichier For Output As #1
Print #1, "aaaaa " & Chr(13) & "apres 1er chr(13) "
Print #1, "bbbbb " & Chr(13) & "apres 2eme chr(13) "
Print #1, "ccccc " & Chr(13) & "apres 3eme chr(13) "
Close #1
End Sub


Par avance merci
Francois.

( je ne peux hélas pas intervenir dans la constitution de cesfichiers )









--
Cordialement,

Jacques.