Avatar billede centauri Nybegynder
21. maj 2006 - 21:18 Der er 5 kommentarer

Tilføj til Text Fil fra toppen af

Kan de lade sig gøre at tilføje linjer til en tekst til således at den nyeste linje altid står øverst, og i så fald hvordan ?

For har normalt altid brugt FileSystemObjects og der bliver det hele tiden tilføjet sidste i filen.

Har nemlig brug for det står i toppen, da det så er dennemre at lave en funktion der læser f.eks de første 10, 20 eller 30 linjer. Frem for at skulle lave noget der gør det fra bundne af ihverfald lige efter hvad jeg kender til det.
Avatar billede nielle Nybegynder
21. maj 2006 - 22:05 #1
Nej, det findes der ikke nogen let måde at gøre. Den eneste mulighed er:

1) Starte med at læse hele finen, linje for linje, ind i et array.
2) Slette filens indhold.
3) Skrive de nye linjer ud.
4) Skrive indholdet fra arrayet ud.

Hvis der er mange linjer i tekstfilen, så kan dette godt være ret tungt at have med at gøre.
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:34 #2
1) Indlæs hele filen ind i en variabel (f.eks. "txt")
2) txt = "dit ny indhold i toppen" & txt
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:35 #3
3) Skriv til filen, hele variabeln "txt"..

På den måde undgår man at læse linie for linie, da det er meget langsom..

Læs-hel, indsæt ny-text + txt, gem-hel
Avatar billede sjh Nybegynder
21. maj 2006 - 23:10 #4
Ja det er nok bedst at gøre som thesurfer skriver.. fx.

Private Sub Form_Load()
  Call AddTextToTop("Linje " & Now & vbCrLf, "C:\Test.txt")
End Sub

Public Sub AddTextToTop(strText As String, strFilename As String)
Dim bRead() As Byte
Dim nLenght As Long
Dim intFree As Integer
  intFree = FreeFile
  Open strFilename For Binary Access Read Write As #intFree
    nLenght = (LOF(intFree) - 1)
    If nLenght >= 0 Then
      ReDim bRead(nLenght) As Byte
      Get #intFree, 1, bRead
    End If
    Put #intFree, 1, strText
    If nLenght >= 0 Then
      Put #intFree, , bRead
    End If
  Close #intFree
End Sub
Avatar billede martin_moth Mester
27. maj 2006 - 15:47 #5
Lukketid?
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