StringReplace mit Binär

  • Hallo,
    ich hab mal wieder ein Problem und zwar möchte ich etwas aus einer Datei übersetzen. In der Datei stehen Chinesische Schriftzeichen deshalb das Binär.

    Wenn ich das ganze so mache:

    [autoit]

    $textuisystem_handle = FileOpen("textuisystem2.txt", 16 )
    $textuisystem_contents = FileRead($textuisystem_handle)
    $textuisystem_contents = StringReplace($textuisystem_contents, "31095549435F5354545F464F4E544E414D45093F3F3F","32095549435F5354545F464F4E544E414D45093F3F3F")
    FileWrite("test.txt", $textuisystem_contents)

    [/autoit]

    dann schreibt der das als binär wieder in die test.txt :(

    Wenn ich das StringReplace raus lass schreibt ers ganz nomal in die Datei so das daraus wieder n String wird.

    Ich hoffe Ihr versteht was ich mein.

  • Hallo,
    im Prinzip liest du UTF16 aus deiner Datei, also musst du auch in diesem Format schreiben

    [autoit]

    $textuisystem_handle = FileOpen("textuisystem2.txt", 32 )
    $textuisystem_contents = FileRead($textuisystem_handle)

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

    $textuisystem_contents = StringReplace($textuisystem_contents, "31095549435F5354545F464F4E544E414D45093F3F3F","32095549435F5354545F464F4E544E414D45093F3F3F")

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

    $test=fileopen("test.txt",32)
    FileWrite($test,$textuisystem_contents&@crlf)

    [/autoit]


    /EDIT/ copy/paste fehler

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (5. Februar 2010 um 19:35)

  • nein, ich les es nicht im UTF16 aus, sondern im binär modus, da sonst einige zeichen nicht richtig übernommen werden.
    So werden nämlich aus ner datei mit über 1000 kb ne datei mit 566 kb :/

    und wenn ich das mit 16 austausch schreibt er auch nix mehr in die datei..

    Einmal editiert, zuletzt von Icynator (5. Februar 2010 um 20:30)

  • [autoit]

    $test=fileopen("test.txt",17)
    FileWrite($test,$textuisystem_contents)
    fileclose($test)

    [/autoit]

    da Format in UTF16 ist das CRLF schon integriert....

  • warum macht der wenn ich das so mach zwischen jeden buchstaben n leerzeichen :(
    und aus zahlen nen ? :(

    [autoit]

    $textuisystem_handle = FileOpen("textuisystem2.txt", 16)
    $textuisystem_final_handle=fileopen("textuisystem3.txt",17)

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

    While 1
    $textuisystem_contents = FileReadLine($textuisystem_handle)
    If @error = -1 Then ExitLoop
    #cs
    Switch $textuisystem_contents
    Case

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

    EndSwitch
    #ce
    FileWrite($textuisystem_final_handle,$textuisystem_contents & @CRLF)
    Wend

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

    FileClose($textuisystem_handle)
    Fileclose($textuisystem_final_handle)

    [/autoit]

    EDIT: okay habs... ich muss die zu lesende datei mit dem parameter 128 öffnen und die zu schreibende mit 129

  • warum spinnt das script bei dem abschnitt in der angehängten datei? :(

    quellcode is der:

    [autoit]

    $textuisystem_handle = FileOpen("textuisystem3.txt", 128)
    $textuisystem_final_handle=fileopen("textuisystem4.txt",129)
    $line = 0
    While 1
    $textuisystem_contents = FileReadLine($textuisystem_handle, $line)
    If @error = -1 Then ExitLoop
    #cs
    Switch $textuisystem_contents
    Case ""

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

    EndSwitch
    #ce
    FileWrite($textuisystem_final_handle,$textuisystem_contents & @CRLF)
    $line +=1
    Wend

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

    FileClose($textuisystem_handle)
    fileclose($textuisystem_final_handle)

    [/autoit]