Lecteur en Buffer d'un fichier Texte de 70 Mo

SebOfBorg Messages postés 94 Date d'inscription dimanche 29 septembre 2002 Statut Membre Dernière intervention 26 août 2009 - 18 janv. 2005 à 10:49
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 18 janv. 2005 à 11:25
Bonjour,

J'ai un fichier Texte de 70 Mo qui tient sur 1 ligne !
J'aimerais le convertir pour qu'il tienne sur plusieurs lignes mais :

Lorsque je fais un
line input #1, TOTO

Cela prend un temps fou (2 heures)

Comment faire pour aller plus vite ?

Est il possible de faire du "streaming" ou de bufferiser la lecture du fichier
L'idée pourrait être de ne lire qu'une partie du fichier a la fois et non de mettre la totalité du fichier en mémoire puis de travailler sur la mémoire.
Ou alors est il possible de definir une taille pour la varible recevant la ligne (sachant que celle ci est enorme !!).

Merci d'avance

Bon Courage
A plus
SebOfBorg

1 réponse

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 janv. 2005 à 11:25
en ouvrant ton fichier en binaire tu peux lire le nombre d'octets que tu veux.

Dim Lg As Long
Dim Reste As Long
Dim Buffer As String

Lg = 1024 'Longueur à lire
Buffer = Space$(Lg)

Open "c:\toto.txt" For Binary As #1
Reste = LOF(1)
While Reste > 0 If Reste < Lg Then Lg Reste: Buffer Space$(Lg)
Get #1, , Buffer
Reste = Reste - Lg

'traitement
Wend
Close #1

Daniel
0