Avatar billede tingholm Mester
22. september 2015 - 11:52 Der er 3 kommentarer

åbne fil og læse linje for linje - bag fra

Hej Eksperter

Jeg forsøger at lave et program der kan vende en tekstfil om linje for linje.
Jeg har styr på at åbne filen og generere en ny fil til output, men jeg kan simpelthen ikke læse den gamle fil fra bunden og op og fylde indholdet i den nye oppe fra og ned...
Jeg ville gå filen igennem som et Recordset og har forsøgt med:

        Set fso = CreateObject("Scripting.FileSystemObject")
        Set Fil = fso.OpenTextFile("c:\test.txt")
        Set NyFil = fso.CreateTextFile("c:\testOmv.txt")
       
        Fil.MoveLast  '<<< Her fejler programmet
        Do While Not Fil.BOF
            NyFil.Writeline Fil.Readline
            Fil.MovePrevious
        Loop
        Fil.Close
        NyFil.Close
       
        Set Fil = Nothing
        Set NyFil = Nothing
        Set fso = Nothing
Avatar billede claes57 Ekspert
22. september 2015 - 12:07 #1
lidt anderledes måske...
1) åben den originale fil, og brug en linje med ReadAll - så har du hele filen i en tekst-variabel
2)
søg fra sidste position (=Len på variablen) baglæns (InStrRev) til VbCrLf
klip den tekst (Mid), og skiv linjen i ny fil
..
fortsæt fra den nye position, søg baglæns til VbCrLf
klip den tekst, og skiv linjen i ny fil
..
til sidst er der ikke en VbCrLf, så når du ikke finder flere, så skriv til slut en linje fra sidste position og til start.
Avatar billede tingholm Mester
22. september 2015 - 12:25 #2
hmm... tror min String knækker... filerne kan let fylde 20-30 mb
Avatar billede claes57 Ekspert
22. september 2015 - 12:45 #3
jf The MoveLast Method
Note: An error will also occur if the Recordset object does not support bookmarks or backward cursor movement.

så ud fra http://www.codeproject.com/Questions/127427/recordset-movelast-not-working
do until Fil.Eof
  Fil.MoveNext
loop
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester