OVH Cloud OVH Cloud

Lecture d'un gros fichier

3 réponses
Avatar
Alain Proviste
Bonjour,



J'ai un volumineux fichier fic.txt de 40M.

Je veux lire ce fichier par paquet de 100 caracteres et mettre chaque paquet
dans un tableau t$().



Comment faire ?



Merci par avance de votre aide.



AP

3 réponses

Avatar
Pierre Archambault
Salut Alain,

Essaie ce code. (Je n'ai pas testé mais sauf bugs, ça devrait marcher)
'----------------------------------------

Sub LireFichier()
Dim Tampon as String * 100
Dim Compteur as Long
Dim Fichier as String
Dim NoFichier as Integer
Dim Tableau() as String

NoFichier = Freefile
Fichier = "C:fic.txt" ' Remplace par le chemin complet
Open Fichier for Binary access read as #NoFichier
Do While Not EFO(#NoFichier)
Compteur = Compteur + 1
Redim Preserve Tableau(Compteur)
Get #NoFichier, , Tampon
Tableau(Compteur) = Tampon
Tampon = ""
Loop
Close #NoFichier

End Sub

'----------------------------------------

"Alain Proviste" a écrit dans le message
de news: %23FVEe2$
Bonjour,



J'ai un volumineux fichier fic.txt de 40M.

Je veux lire ce fichier par paquet de 100 caracteres et mettre chaque
paquet dans un tableau t$().



Comment faire ?



Merci par avance de votre aide.



AP




Avatar
Tschuß
EFO ? ......... EOF (End Of File) me semble plus juste

Ton programme implique qu'il y a plusieurs lignes dans le fichier en
entrée. Si le fichier texte est juste une succession de caractères
sans saut de ligne, ça ne fonctionne pas.


Pierre Archambault wrote:
Salut Alain,

Essaie ce code. (Je n'ai pas testé mais sauf bugs, ça devrait marcher)
'----------------------------------------

Sub LireFichier()
Dim Tampon as String * 100
Dim Compteur as Long
Dim Fichier as String
Dim NoFichier as Integer
Dim Tableau() as String

NoFichier = Freefile
Fichier = "C:fic.txt" ' Remplace par le chemin complet
Open Fichier for Binary access read as #NoFichier
Do While Not EFO(#NoFichier)
Compteur = Compteur + 1
Redim Preserve Tableau(Compteur)
Get #NoFichier, , Tampon
Tableau(Compteur) = Tampon
Tampon = ""
Loop
Close #NoFichier

End Sub

'----------------------------------------

"Alain Proviste" a écrit dans le mess age
de news: %23FVEe2$
Bonjour,



J'ai un volumineux fichier fic.txt de 40M.

Je veux lire ce fichier par paquet de 100 caracteres et mettre chaque
paquet dans un tableau t$().



Comment faire ?



Merci par avance de votre aide.



AP






Avatar
Alain Proviste
Merci c'est super !
Il y avait effectivement 1saut de lignes après 100 caractères
J'ai fait ça et ça marche :
.....
Dim Tampon As String * 101
....
lig=0
Open f$ For Binary Access Read As #1
Do While Not EOF(1)
lig = lig + 1
Get #1, , Tampon
x$(lig) = Left$(Tampon, 100)
Tampon = ""
Loop
Close #1

Merci encore.
Alain

"Pierre Archambault" a écrit dans le
message de news: _3pbh.898$
Salut Alain,

Essaie ce code. (Je n'ai pas testé mais sauf bugs, ça devrait marcher)
'----------------------------------------

Sub LireFichier()
Dim Tampon as String * 100
Dim Compteur as Long
Dim Fichier as String
Dim NoFichier as Integer
Dim Tableau() as String

NoFichier = Freefile
Fichier = "C:fic.txt" ' Remplace par le chemin complet
Open Fichier for Binary access read as #NoFichier
Do While Not EFO(#NoFichier)
Compteur = Compteur + 1
Redim Preserve Tableau(Compteur)
Get #NoFichier, , Tampon
Tableau(Compteur) = Tampon
Tampon = ""
Loop
Close #NoFichier

End Sub

'----------------------------------------

"Alain Proviste" a écrit dans le message
de news: %23FVEe2$
Bonjour,



J'ai un volumineux fichier fic.txt de 40M.

Je veux lire ce fichier par paquet de 100 caracteres et mettre chaque
paquet dans un tableau t$().



Comment faire ?



Merci par avance de votre aide.



AP