Avatar billede sion Nybegynder
21. juli 2002 - 19:56 Der er 5 kommentarer og
2 løsninger

Skrive øverst i tekstfil

Som titlen ret nøjagtigt antyder, så ville jeg gerne finde en funktion, der gør at der bliver skrevet øverst til en testfil, i stedet for at ny tekst bliver tilføjet i bunden.

-Sion
Avatar billede a1a1 Novice
21. juli 2002 - 20:07 #1
det mener jeg ikke at du kan, men du kan "lave" en ny tekst fil og så indføre noget nyt i toppen....
ala..

få org tekst noget ala
strFileContent = oFSO.ReadAll
strFileContent = "Det er så en ny linie" & vbCrLf & strFileContent

og så gemme det i en ny tekst fil, slette den originale og rename den nye til det gamele navn....:)
Avatar billede kedde65 Praktikant
21. juli 2002 - 20:10 #2
Denne funktion kan gøre det du spørger om.

Private Sub Command1_Click()
    Dim lines() As String
    Dim fso As FileSystemObject
    Set fso = New FileSystemObject
    Dim fil As TextStream
    Dim i As Integer
    Set fil = fso.GetFile(app.Path & "\program.ini").OpenAsTextStream(ForReading)
    i = 1
    While Not fil.AtEndOfStream
        ReDim Preserve lines(i)
        lines(i - 1) = fil.ReadLine
        i = i + 1
    Wend
   
    fil.Close
   
    Set fil = fso.GetFile(app.Path & "\program.ini").OpenAsTextStream(ForWriting)
   
    fil.WriteLine "Det nye der skal stå øverst"
   
    For Each item In lines
        fil.WriteLine item
    Next
   
    Set fil = Nothing
    Set fso = Nothing
End Sub

Husken reference til Microsoft Scripting Runtime.

VH CK
Avatar billede kantoraza Nybegynder
21. juli 2002 - 21:16 #3
Du kan også gøre det på en tredie måde.

Private Sub Command1_Click()
    ' Laver tekstfilen først
    Open "c:\FIL.txt" For Output As #1
        Print #1, "Linje 1"
        Print #1, "Linje 2"
        Print #1, "Linje 3"
        Print #1, "Linje 4"
        Print #1, "Linje 5"
    Close #1
   
    ' Åbner den
    Dim Inhold, NyLinje As String
   
    Open "c:\FIL.txt" For Input As #1
        Do While EOF(1) = False
            Line Input #1, NyLinje
            Inhold = Inhold & NyLinje & vbCrLf
        Loop
    Close #1
   
    ' Linjen som skal tilføjes
    Dim Insætningslinje As String
    Insætningslinje = InputBox("Skriv den nye linje:")
   
    Open "c:\FIL.txt" For Output As #1
        Print #1, Insætningslinje
        Print #1, Inhold
    Close #1
   
    MsgBox "Done.", vbInformation
End Sub
Avatar billede sion Nybegynder
21. juli 2002 - 21:16 #4
Lyder godt CK, men skal alle computere der skal køre programmet så ikke have Microsoft Scripting Runtime? Eller følger det med windows?
Tak for hjælpen -Sion
Avatar billede kedde65 Praktikant
21. juli 2002 - 21:18 #5
Scripting runtiem følger med Windows, og ihvertfald hvis du har et eller andet med Visual Basic, som Office pakken eller lign. så kan du være meget sikker på den er der.

VH CK
Avatar billede sion Nybegynder
21. juli 2002 - 21:23 #6
Sorry CK, men kantoraza's metode er at fortrække, men pga. dit hurtige svar får du også en slat point.
-Sion
Avatar billede kedde65 Praktikant
21. juli 2002 - 21:38 #7
Jeg kan godt følge dig i hvorfor hans er den bedste løsning (mest enkel), men min er den mest generiske og kan bruges til alt kommunikation med filer.

Hvad angår runtime modulet så er det ikke noget er være nervøs for, fordi for programmet overhovedet skal kunne køre skal der være VBRuntime og inde i den er der også Scripting Runtime.

Men godt du fik det til at virke.

VH CK
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