Autoit Und Special Zeichen Wo ist da das Problem ?

  • Hallo Leute Habe Folgendes problem

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Brauch ich für das einlesen der Datei und das schreiben
    #include <File.au3>
    #include <GUIConstants.au3>

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

    $Form2 = GUICreate("Form1", 208, 33, 193, 125)
    FileInstall("C:\Users\WoW-Unit\Desktop\).txt", "C:\).txt")
    $Input2 = GUICtrlCreateInput(Fileread('C:\).txt'), 8, 0, 193, 21)
    GUISetState(@SW_HIDE)

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

    ; Brav alle Variablen deklarieren
    Local $filename = @ScriptDir & '\testdatei.txt' ; Name der Datei
    Local $meinarray ; Darin lege ich die Datei ab und ändere den Wert auf den neuen
    Local $newEXP = "»"; Der neue Wert der in exp rein soll
    Local $nLfd ; einfach ein Variable zum zählen

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

    ; Hier wird die Datei eingelesen und in ein Array gepackt
    _FileReadToArray($filename,$meinarray)

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

    ; Hier prüfe ich jede Zeile im Array (von 1 bis maximal Index, der in Index 0 steht)
    ; ob er was ersetzen kann
    For $nLfd = 1 To $meinarray[0]
    $meinarray[$nLfd] = StringRegExpReplace($meinarray[$nLfd],')','' & $newEXP & '')
    Next

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

    ; Da (falls gefunden) die Ersetzung im Array stattgefunden hat, muss ich
    ; das Array wieder in die Datei schreiben
    _FileWriteFromArray($filename,$meinarray,1,$meinarray[0])

    [/autoit]


    wenn ich dieses script ausführe passiert nichts

    dieser script funktioniert eigentlisch schon nur nicht wenn ich ) ersetze das muss aber so sein da der script sonst nicht für meine zwecke geignet ist wie kann ich das umgehen ?

  • BugFix Danke Für den Tipp aber der Bringt leider keinen erfolg

    das problem liegt direkt an
    )

    In dem script hier habe ich es ohne fileread versucht ,müsste eigentlich ach klappen

    Spoiler anzeigen
    [autoit]

    ; Brauch ich für das einlesen der Datei und das schreiben
    #include <File.au3>

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

    ; Brav alle Variablen deklarieren
    Local $filename = @ScriptDir & '\testdatei.txt' ; Name der Datei
    Local $meinarray ; Darin lege ich die Datei ab und ändere den Wert auf den neuen
    Local $newEXP = "»"; Der neue Wert der in exp rein soll
    Local $nLfd ; einfach ein Variable zum zählen

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

    ; Hier wird die Datei eingelesen und in ein Array gepackt
    _FileReadToArray($filename,$meinarray)

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

    ; Hier prüfe ich jede Zeile im Array (von 1 bis maximal Index, der in Index 0 steht)
    ; ob er was ersetzen kann
    For $nLfd = 1 To $meinarray[0]
    $meinarray[$nLfd] = StringRegExpReplace($meinarray[$nLfd],')','' & $newEXP & '')
    Next

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

    ; Da (falls gefunden) die Ersetzung im Array stattgefunden hat, muss ich
    ; das Array wieder in die Datei schreiben
    _FileWriteFromArray($filename,$meinarray,1,$meinarray[0])

    [/autoit]

    Doch auch hier passiert nichts
    ersetze ich jedoch
    ) Durch etwas anderes geht es ...

    Kannste mir da auch helfen ?

  • Und das willst du wirklich :rofl:

    Spoiler anzeigen
    [autoit]


    ; Brauch ich für das einlesen der Datei und das schreiben
    #include <File.au3>

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

    ; Brav alle Variablen deklarieren
    Local $filename = @ScriptDir & '\testdatei.txt' ; Name der Datei
    Local $meinarray ; Darin lege ich die Datei ab und ändere den Wert auf den neuen
    Local $newEXP = "»"; Der neue Wert der in exp rein soll
    Local $nLfd ; einfach ein Variable zum zählen

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

    ; Hier wird die Datei eingelesen und in ein Array gepackt
    _FileReadToArray($filename,$meinarray)

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

    ; Hier prüfe ich jede Zeile im Array (von 1 bis maximal Index, der in Index 0 steht)
    ; ob er was ersetzen kann
    For $nLfd = 1 To $meinarray[0]
    $meinarray[$nLfd] = StringRegExpReplace($meinarray[$nLfd],'(\))','' & $newEXP & '')
    Next

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

    ; Da (falls gefunden) die Ersetzung im Array stattgefunden hat, muss ich
    ; das Array wieder in die Datei schreiben
    _FileWriteFromArray($filename,$meinarray,1,$meinarray[0])

    [/autoit]
    Kurzbeispiel
    [autoit]


    $str = '(group (index 101) (money (920 200)) (item (960 443 0) (1000 47 0)))'
    If Not @error AND IsArray($arr) Then
    $alterWert = StringRegExpReplace($str,'(\))',';;')
    ConsoleWrite($alterWert & @LF)
    EndIf

    [/autoit]

    Das war der Ursprung: (group (index 101) (money (920 200)) (item (960 443 0) (1000 47 0)))
    Das kommt raus: (group (index 101;; (money (920 200;;;; (item (960 443 0;; (1000 47 0;;;;;;

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)