RegEx matches aus Text Datei löschen

  • Hallo ich habe Einträge mit

    BSS:0050001
    BSS:0050002
    BSS:0050003
    ...

    immer am Zeilen Anfang einer Text Datei, die ich eigentlich mit StringRegExpReplace löschen wollte,
    leider sehe ich keine Veränderungen in der MsgBox, wobei mir StringRegExp dutzende matches anzeigt?

    [autoit]

    #include <array.au3>

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

    $hFile = FileOpen("datei.txt")
    $sDatei = FileRead($hfile)

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

    $aReturn = StringRegExp($sDatei,"BSS:0050\w*",3)
    _ArrayDisplay($aReturn)

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

    $Return2 = StringRegExpReplace($sDatei,"BSS:0050\w*","")
    If not @error Then
    ConsoleWrite("Funz" & @CRLF)
    EndIf

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

    MsgBox(1,"Aber nicht hier", $sDatei)

    [/autoit]
  • ja weil da eben nichts zu schreiben ist, keine Veränderungen finden statt, das ist ja mein Problem.

  • So sollte das funktionieren:

    [autoit]

    #include <Array.au3>

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

    $hFile = FileOpen(@ScriptDir & "\datei.txt", 0 + 2 )
    $sDatei = FileRead($hfile)

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

    $aReturn = StringRegExp($sDatei,"BSS:0050\w*",3)
    _ArrayDisplay($aReturn)

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

    $sReturnReplaced = StringRegExpReplace($sDatei,"BSS:0050\w*","")
    If not @error Then
    ConsoleWrite("Funz" & @CRLF)
    EndIf

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

    FileWrite($hFile,$sReturnReplaced)
    Sleep(100)
    FileClose($hfile)

    [/autoit]

    Mfg

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Achso erst FileOpen Read dann Close und unten nocheinmal FileOpen aber mit dem Parameter 2, sowie ReturnReplaced,Danke :)

  • Es genüg wenn du die Datei am Anfang im Read & Write öffnest, dann auslesen und schreiben, und dann closen.

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • habs versucht mit deinem Code aber es hatte meine Datei gelöscht, deshalb hab ich es so jetzt gemacht

    [autoit]

    #include <Array.au3>

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

    $hFile = FileOpen(@ScriptDir & "\datei.txt", 0 )
    $sDatei = FileRead($hfile)
    FileClose($hfile)

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

    $aReturn = StringRegExp($sDatei,"BSS:0050\w*",3)
    _ArrayDisplay($aReturn)

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

    $sReturnReplaced = StringRegExpReplace($sDatei,"BSS:0050\w*","")
    If not @error Then
    ConsoleWrite("Funz" & @CRLF)
    EndIf

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

    $hFile = FileOpen(@ScriptDir & "\datei.txt", 2 )
    FileWrite($hFile,$sReturnReplaced)
    Sleep(100)
    FileClose($hfile)

    [/autoit]