Avatar billede Spotgun Seniormester
24. juni 2002 - 13:40 Der er 1 kommentar og
1 løsning

Gemme "midt inde" i en fil

Jeg arbejder på et program, som skal checke en række hotfolders. De hotfolders er defineret i en tekstfil, som læses ind. Det er ikke noget problem for mig, at tilføje nye linier, men hvordan retter jeg nemmest en linie, som ligger placeret inde midt i tekst-filen.

tekstfilens indhold ser f.eks. således ud:

D:\Temp\Mover\Src1;D:\Temp\Mover\Dest1;1
D:\Temp\Mover\Src2;D:\Temp\Mover\Dest2;4
D:\Temp\Mover\Src3;D:\Temp\Mover\Dest3;2
D:\Temp\Mover\Src4;D:\Temp\Mover\Dest4;7
D:\Temp\Mover\Src5;D:\Temp\Mover\Dest5;1

Hvis jeg nu f.eks. vil ændre linie nr. 3, og bibeholde alle de andre linier, hvordan gøres det så nemmest?
Avatar billede Spotgun Seniormester
24. juni 2002 - 14:40 #1
Er det overhovedet muligt at gøre? Hvis det er, så kom gerne med et lille eksempel, hvor der bliver ændret en linie midt i en tekstfil. Også gerne med et eksempel hvor en linie midt i det hele fjernes!
Avatar billede Spotgun Seniormester
24. juni 2002 - 15:22 #2
Nå, det så ikke rigtigt ud til, at VB har noget der understøtter det jeg skal bruge, så jeg bankede et lille modul sammen, som kan gøre det.

Det er dog nok en lidt bøvlet måde, men det virker da...

For dem der er interesserede, så smæk det her kode ind i et modul:

Option Explicit
Dim FileLines() As String

Public Sub ReadFile(FilePath As String)
  Dim ArrLen As Integer
  Open FilePath For Input As #1
  ArrLen = 1
  Do Until EOF(1)
    ReDim Preserve FileLines(ArrLen)
    Input #1, FileLines(ArrLen)
    ArrLen = ArrLen + 1
  Loop
  Close #1
End Sub

Public Sub ChangeLine(NewLine As String, LineID As Integer)
  FileLines(LineID) = NewLine
End Sub

Public Sub WriteFile(FilePath As String)
  Dim i As Integer
  Open FilePath For Output Lock Read Write As #1
  For i = 1 To UBound(FileLines)
    Print #1, FileLines(i)
  Next i
  Close #1
End Sub
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
Kategori
Kurser inden for grundlæggende programmering

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