Teile aus einer .txt Datei löschen

  • Wie kann ich einen Teil, von einer Zeile aus einer Textdatei löschen?


    z.B. hier:

    Zettel-berg [NICHT DA] bla blasf F23nf fopjpwfwf wtwttw

    so dass alles hinter dem [ weg editiert ist.

    3 Mal editiert, zuletzt von Whos you (4. Mai 2009 um 19:27)

  • Hey,

    also nur "marius" soll von der Zeile übrig blieben?

    Wenn der Name immer durch ein "_" abgetrennt wird, dann kannst du einfach mit Stringsplit arbeiten.

    [autoit]


    $string = "marius_- [Online] 15 W PM an adii_- PM-Menü Markt Indersdorf"
    $astringsplit = stringsplit($string, "_")
    msgbox(1, "", $astringsplit[1])

    [/autoit]
  • [autoit]

    #include <File.au3>
    Global $aLine

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

    _FileReadToArray("a.txt", $aLine)
    For $i = 1 To UBound($aLine) -1
    $a = StringSplit($aLine[$i],"_")
    MsgBox(0,"test",$a[1])
    Next

    [/autoit]

    zwar zu langsam, aber mit FileReadToArray ;)

  • Wenn das von 'nuts' Gesagte nicht zutrifft, solltest Du am besten einmal 10-20 unterschiedliche Beispielzeilen liefern. Dann kann man Dir bestimmt ein günstige Möglichkeit zeigen.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • [autoit]

    #include <File.au3>
    Global $aLine

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

    _FileReadToArray("a.txt", $aLine)
    For $i = 1 To UBound($aLine) -1
    $a = StringSplit($aLine[$i],"[")
    $File = FileOpen("b.txt",1)
    _FileWriteToLine("b.txt",$i, $a[1])
    Next
    FileClose($File)

    [/autoit]

    So, das macht es jetzt "fast" so, wie du es gerne hättest ( denke ich ). Ich kenne nur grade keine Funktion, mit der man Zeilen überschreiben / ersetzen kann. Deswegen schreibt er es in eine neue Datei, die du dann einfach Unbenennst via Autoit, oder Manuell.

  • Danke, jetzt geht's!
    er schafft aber so nicht alle da kommt nen Erro

    C:\Users\User\Desktop\ProJec.au3 (81) : ==> Unable to parse line.:
    ^
    ^ ERROR
    >Exit code: 1 Time: 2.931r...

  • Kannst du selber zumachen, indem du den ersten Post von dir Bearbeitest.

  • [autoit]

    ; ggf. $text = FileRead("dateiname.txt")
    $text = "adii_- [Online] 15 W PM an adii_- PM-Menü Markt Indersdorf" & @CRLF & _
    "Adio_ [Nicht am PC / abwesend] -- M PM an Adio_ Profil von: Adio_ Paunzhausen" & @CRLF & _
    "aDore-yOu [Nicht am PC / abwesend] -- -- PM an aDore-yOu Erweitertes Profil Odelzhausen" & @CRLF & _
    "Adäää [Online] 22 M PM an Adäää PM schreiben Rohrbach" & @CRLF & _
    "aerztin90 [Online] 18 W PM an aerztin90 PM-Menü Schrobenhausen" & @CRLF & _
    "affairs_ [Online] -- W PM an affairs_ Profil von: affairs_ Dachau"

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

    $text = StringRegExpReplace($text," \[.*","")
    Msgbox(0,"",$text)

    [/autoit]

    Wobei mir noch nicht klar ist, was alles zum "Usernamen" gehört ?(

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • er schafft aber so nicht alle da kommt nen Erro

    C:\Users\User\Desktop\ProJec.au3 (81) : ==> Unable to parse line.:
    ^
    ^ ERROR
    >Exit code: 1 Time: 2.931r...

  • Edit:

    [autoit]

    #include <File.au3>
    Global $aLine

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

    _FileReadToArray("a.txt", $aLine)
    For $i = 1 To UBound($aLine) -1
    $a = StringSplit($aLine[$i],"[")
    If @error Then ContinueLoop
    _FileWriteToLine("a.txt",$i, $a[1],1)
    Next

    [/autoit]

    Diese Version Überschreibt sogar die alten Zeilen. Habs gefunden ;)
    Bei _FileWriteToLine, der letzte Parameter, da kann man angeben ob überschrieben werden soll oder nicht.

    Einmal editiert, zuletzt von SiLenCa (4. Mai 2009 um 16:57)

  • Komisch, bei mir funktioniert es einwandfrei. In meine Textdatei stehen alle von dir oben genannten Zeilen.
    Beachte: Es wird in die Gleiche Zeile geschrieben. Also bei _FileRead... den gleichen Namen der Textdatei verwenden, wie bei _FileWrite...

    Edit: Mach aber lieber ein Backup, befor du deine Datei beschädigst.

  • Lad die Datei, wie sie vorher ist mal hoch. Dann schaue ich mir das Selber mal an.