Alle drei Varianten ausprobiert. Der schreibt nicht binär.
Bei mir schon:
$s_CodeAsString = FileRead("Test.txt")
FileDelete("Test.pdf")
FileWrite("Test.pdf", Binary($s_CodeAsString))
Hab mir deinen String als Textdatei gespeichert und als Ergebnis bekomme ich die PDF aus dem Anhang.
Den 1.Block des String schreibt er binär und macht mit dem zweiten in Text weiter
- Warum Blockweise?
- Warum Stringfunktionen (StringRegExp) verwenden, wenn du doch Binärdaten schreiben willst? - ich sehe auch keine einzige Umwandlung der Ergebnisse aus StringRegExp in Binärdaten - es bleibt ein String.
- Warum FileWriteLine? Wo gibt es denn in Binärdateien Zeilen? FileWriteLine schreibt einen übergebenen String in die Datei und hängt einen Zeilenumbruch dran - was das ganze bei Binärdaten soll solltest du mal überlegen.
Kurz: Es funktioniert bei mir auch blockweise völlig problemlos:
Blockweises Schreiben eines Binärstrings
Global $s_CodeAsString, $d_Length, $d_BlockSize, $h_File, $b_Block
[/autoit] [autoit][/autoit] [autoit]$s_CodeAsString = FileRead("Test.txt")
$d_Length = StringLen($s_CodeAsString)
$d_BlockSize = 100
$h_File = FileOpen("Test.pdf", 16)
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To INt($d_Length / $d_BlockSize)
$b_Block = Binary(StringMid($s_CodeAsString, $i * $d_Length, $d_BlockSize))
FileWrite($h_File, $b_Block)
Next
FileClose($h_File)