In Textdatei Zeile löschen und nächste soll nachrutschen!

  • VB6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Malcolm.

    In Textdatei Zeile löschen und nächste soll nachrutschen!

    Moin Leutz,

    wie kann ich eine Zeile in einer Textdatei löschen ?! und die darauf folgenden nachrutschen lassen siehe so.

    Text1
    Text2 <- soll entfernt werden
    Text3

    nach dem löschen denk ich siehts so aus

    Text1
    <- die lücke soll auch weg
    Text3

    so soll es aussehen

    Text1
    Text3


    hoffe Ihr könnt was damit anfangen :)

    mfg Myers
    das sieht schonmal ganz gut aus . jedoch sehe ich da nich wo man den Pfad zur Textdatei eingeben kann oO bin auf diesen Gebiet noch nen noob :P .. gibt es nicht eine Variante die kleiner ist? oO

    ich erkläre mal wie mein Programm aussieht

    In einer Form hab ich eine listbox . In dieser Listbox wird mir der Inhalt einer bestimmten Textdatei angezeigt.(Pfad will ich ändern können)

    Nun bin ich soweit, dass wenn ich in der List Box was anklickt z.b so

    Listboxinhalt

    Text1
    Text2 <- angeklickt
    Text3

    Dann Drück ich auf einen ClearButton und es wird aus der Textdatei entfernt

    ich weiss ja schon wie ich alles umsetze nur das mit der Zeile löschen funzt nich : (
    Hallo

    Hier ein Beispiel:

    Visual Basic-Quellcode

    1. Private Sub cmdDateiLesen_Click()
    2. ' Datei in ListBox einlesen
    3. Dim FNr As Integer
    4. Dim cText As String
    5. Dim Zeile() As String
    6. Dim N As Integer
    7. FNr = FreeFile
    8. Open "D:\Test.txt" For Input As #FNr
    9. cText = Input(LOF(FNr), #FNr)
    10. Close #FNr
    11. Zeile = Split(cText, vbCrLf)
    12. For N = 0 To UBound(Zeile)
    13. Me.List1.AddItem Zeile(N)
    14. Next
    15. End Sub
    16. Private Sub cnmdZeileLöschen_Click()
    17. ' markierten Eintrag aus ListBox entfernen und speichern
    18. Dim FNr As Integer
    19. Dim N As Integer
    20. Me.List1.RemoveItem Me.List1.ListIndex
    21. FNr = FreeFile
    22. Open "D:\Test.txt" For Output As #FNr
    23. For N = 0 To List1.ListCount - 1
    24. Print #FNr, List1.List(N)
    25. Next
    26. Close #FNr
    27. End Sub
    Hi.

    @wincnc

    Warum denn der Umweg über die ListBox? Man kann doch direkt die entsprechende Zeile vom Array löschen. Dann hat man zwar auch eine Lücke, aber wenn man dann die Zeilen des Arrays wieder in die Datei reinschreibt kann man ja vorher sowas schreiben:

    Visual Basic-Quellcode

    1. If Zeile(n) <> "" Then 'Schreiben


    Ich verstehe den Umweg nicht so ganz. :)

    mfG

    Malcolm