Eine Zeile aus Textdatei löschen

  • Ich habe eine Text-datei mit folgedem Inhalt:

    Code
    Georg|15|Berlin
    Georg|152|Berlin
    Georg|1523|Berlin

    Diese Daten werden dann in ein Listview gepackt.

    Wie kann ich das machen, das die Zeile

    Code
    georg|152|berlin

    ganz gelöscht wird und die untere Zeile aufrutscht?

    MFG Sebastian

  • Hi,
    du willst in der LISTVIEW eine Zeile löschen? Oder in der *.TXT-Datei?

    [autoit]

    _GUICtrlListView_DeleteItemsSelected($Handle)

    [/autoit]

    löscht u.a. bei listview
    ciao
    Andy

  • soo.. hatte grad etwas Zeit und habs mal umgesetzt mit Kommentaren:

    Spoiler anzeigen
    [autoit]

    $file = "" ; der dateiname der textdatei
    $removetext = "" ; der text (die zeile) die ersetzt werden soll
    $anzahl = 1 ; die anzahl wie oft der text gelöscht werden soll (falls doppeleinträge)

    [/autoit] [autoit][/autoit] [autoit]

    $openf = FileOpen($file, 16) ; öffnet die datei im Binary modus
    $read = FileRead($openf) ; liest die datei aus (immernoch binary)
    FileClose($openf) ; schliest die datei (... binary)
    $new = StringReplace($read, StringTrimLeft(Binary($removetext), 2) & StringTrimLeft(Binary(@CRLF), 2), "", $anzahl)
    ; hier wird aus der binary der zeilenumbruch und der text ersetzt

    [/autoit] [autoit][/autoit] [autoit]

    $openfnew = FileOpen($file, 2) ; hier wird die datei "normal" geöffnet, jedoch wird der inhalt überschrieben
    FileWrite($openfnew, BinaryToString($new)) ; hier wird der ehemals binary text in einem string in die datei geschrieben
    FileClose($openfnew) ; hier schließen wir die "richtige" datei
    Run("explorer.exe " & @ScriptDir & "\" & $file) ; hiermit kann die datei geöffnet werden

    [/autoit]

    es geht bestimmt auch einfacher.. aber so klappts auch ;)

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Zitat

    es geht bestimmt auch einfacher.. aber so klappts auch


    Hab auch erst gedacht, die Zeile sollte aus der *.TXT-Datei gelöscht werden.
    Aber das geht einfacher: *.TXT mit Editor öffnen, Zeile löschen, Speichern, fertig. Da braucht man kein Script für^^
    ciao
    Andy

  • Hi Leute,
    ist das nur ein Beispiel mit "Georg|152|Berlin" oder ist das die einzige Zeile die aus der TXT-Datei gelöscht werden soll?
    Sonst müsstest du ja eine Mustererkennung machen, was dann sehr schwer wird. Wenn du immer nur eine Zeilennummer löschen möchtest,
    Funktioniert das Script von Micha-HE.

    Sonst hätten wir mit ein bischen bastelarbeit schon die 2. Funktion für eine neue UDF. EditTXT würde ich Sie dann nennen.
    Bestimmte Textstellen aus einer Text-Datei löschen.

    MFG
    Der_Doc