Bestimmte Zeile suchen und ersetzen lassen

  • Hallo Leute,

    ich hab schon das Forum abgesucht, aber leider hab ich mein Problem noch nicht gelöst. Vielleicht ist es auch nur eine Kleinigkeit und ich habe einfach was übersehen. Aber gut zum Problem: Ich habe eine Datei. Die obersten Zeilen beginnen immer mit "#". Diese gilt es herauszufiltern. Das habe ich auch schon hinbekommen. Aber das ersetzen will einfach nicht klappen.

    Der Aufbau der Datei sieht so aus:
    #ARTIST:Künslter
    #TITLE:Titel
    ;123456

    Bisher sieht mein Code so aus:

    Spoiler anzeigen

    Ich hoffe es kann mir einer Helfen, ich komme einfach nicht weiter. :(

    3 Mal editiert, zuletzt von Maase (28. August 2011 um 23:10)

  • Probiers stattdessen mal mit "Stringreplace"

    Habe ich schon versucht, aber das Problem ist das ich nur den hinteren Teil ändern. Also z. B. #ARTIST:Neuer Interpret. Ich habe auch schon versucht die komplette Zeile zu ändern aber der will einfach nicht. :( Aber danke für deinen Vorschlag.

  • Wie wärs damit?

    Spoiler anzeigen
    [autoit]

    $sString = "#ARTIST:Gordon Freeman"
    $sNewArtist = "name22"

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

    $sStringNew = StringRegExpReplace($sString, '(#ARTIST:).+', '$1' & $sNewArtist)

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

    MsgBox(64, "Done", "Original:" & $sString & @CRLF & "Neuer String: " & $sStringNew)

    [/autoit]
  • Ich hab schon lange nicht mehr mit regulären Ausdrücken gearbeitet, aber eine Alternative wäre noch:

    [autoit]

    $sString = "#ARTIST:Gordon Freeman"
    $sNewArtist = "name22"

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

    $Split = StringSplit($sString, ":")
    $New = $Split[1] & ":" & $sNewArtist

    [/autoit]

    Wobei oben genanntes garantiert um einige Millisekunden schneller ist ;)

  • Danke euch beiden. Jetzt funktioniert es. Da wäre ich nie darauf gekommen. :thumbup: Vielen dank. :D

    //Edit:
    Mir ist gerade aufgefallen, dass der irgendwie nicht in die Datei schreiben will. Ich habe es mit _FileWriteFromArray versucht, aber es tut sich nichts. Was mache ich falsch? Oder anders gefragt, was ist nicht richtig?

    //Edit:
    Habe es hinbekommen. ;) Ich habe mit ReplaceInString weitergemacht.

    2 Mal editiert, zuletzt von Maase (28. August 2011 um 23:10)

  • Auch wenns schon gelöst ist, kannst du dir auch mal mein Wildcard Script aus meiner Signatur ansehen