Lecture d'un fichier texte de la dernière ligne à la première (Résolu)

Scoobidoo

XLDnaute Occasionnel
Bonjour à tous, le Forum,
J'utilise actuellement dans une macro le code suivant qui écrit dans le Fichier2 les lignes du Fichier1 :
VB:
Set oFSO = New Scripting.FileSystemObject
            Set Fichier1 = oFSO.GetFile(FichiersAOuvrir(i))
            Nom = oFSO.GetBaseName(FichiersAOuvrir(i))
            Set oF0 = oFSO.CreateTextFile(Nom & "-Epure-" & ".txt")
            oF0.Close
            Set oF2 = oFSO.GetFile(Nom & "-Epure-" & ".txt")
            Set Fichier2 = oF2.OpenAsTextStream(ForAppending)
            Set Fichier1 = oFSO.OpenTextFile(FichiersAOuvrir(i), 1)
            While Not Fichier1.AtEndOfStream
                    StrLigne = Fichier1.ReadLine
                        Fichier2.WriteLine
        Wend
        Close Fichier1.Close
        Close Fichier2.Close
Au final, le contenu de Fichier2 est le même que Fichier1.
Ce que je souhaite, c'est que dans Fichier2, la première ligne soit la dernière de Fichier1 et ainsi de suite, jusqu'à ce que la dernière ligne de Fichier2 corresponde à la première ligne de Fichier1.
Les recherches effectuées sur le forum et la toile ne m'ont pas permis d'adapter mon code.
Je fais alors appel à vos connaisances pour m'aider à aboutir.
Je vous remercie tous pas avance de l'aide que vous pourrez m'apporter pour cela.
Bonne journée et au plaisir de vous lire.

Scoobidoo
 

sousou

XLDnaute Barbatruc
Bonjour
Par exemple tu pourrai écrire tes données dans un tableau ou une collection,
puis les lires de la fin de ton tableau au début pour les écrire dans ton deuxième fichier
exemple avec une collection
Set ne = New Collection
For n = 1 To 10
ne.Add (n)
Next
For n = ne.Count To 1 Step -1
MsgBox ne.Item(n) ' ici tu écris dans ton deuxième fichier
Next

Cela pourrai donner quelque chose comme cela:
set mesdonnées= new collection

Set oFSO = New Scripting.FileSystemObject
Set Fichier1 = oFSO.GetFile(FichiersAOuvrir(i))
Nom = oFSO.GetBaseName(FichiersAOuvrir(i))
Set oF0 = oFSO.CreateTextFile(Nom & "-Epure-" & ".txt")
oF0.Close
Set oF2 = oFSO.GetFile(Nom & "-Epure-" & ".txt")
Set Fichier2 = oF2.OpenAsTextStream(ForAppending)
Set Fichier1 = oFSO.OpenTextFile(FichiersAOuvrir(i), 1)
While Not Fichier1.AtEndOfStream
StrLigne = Fichier1.ReadLine
mesdonnées.add(strligne) 'ici on rempli la collection
Wend
for= mesdonnées.count to 1 step -1 'ici ont lit la collection à l'enver
Fichier2.WriteLine mesdonnées.item(n)
next

Close Fichier1.Close
Close Fichier2.Close
 

Scoobidoo

XLDnaute Occasionnel
Bonjour Sousou, le Forum,

Grace à ton aide, j'ai pu aisément adapter ta proposition à mon cas et cela marche à merveille.
C'est exactement ce dont j'avais besoin.
Un grand merci pour avoir mis en gras les éléments que je devais insérer car cela m'a rendu un grand service et faciliter la tâche.
Je vais pouvoir continuer d'avancer dans mon projet.
Encore un grand merci.
Bonne journée à toi et à tous les lecteur du forum.

Scoobidoo
 

Statistiques des forums

Discussions
312 234
Messages
2 086 470
Membres
103 226
dernier inscrit
smail12