String in Datei ersetzen

  • Ich möchte gerne einen Wert in einer Datei ersetzen. Dabei handelt es sich um eine HPGL2 Plotdatei, die leider sehr lange Zeile erzeugen. Ich hoffe dies gibt keine Probleme im Script…
    Mein kleine Script finde den gewünschten wert auch, die gibt die Kopienanzahl an, diesen muss ich erst auslesen und danach auf 0 setzen, oder den „RPx“ Wert einfach löschen. Wie ist es am effektives umzusetzen, ohne Stringreplace da die Werte zum teil gar nicht gefunden werden und dies sehr lange dauert. Die Datei könnte auch mal 20MB erreichen. Ich könnte das File auch in ein Array laden und zum Beispiel per „;“ trennen, da dies im HPGL Befehlsatz oft genutzt wird und die letzten Zeichen sind auch immer die selben. Auf Wunsch sende ich euch gerne eine HPGL2 Dateien mit RP2 zu. Mir geht es mehr um eine Idee, freue mich aber auch über ein Scriptansatz.
    Danke

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

    #include<Array.au3>

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

    $file = FileOpen("C:\Windows\System32\spool\PRINTERS\00004.spl", 0)

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

    $line = FileReadLine($file, -1)
    $zeichen = StringLen($line)
    $stelle = StringInStr($line, "RP", 1, 1, $zeichen - 200)
    $wehrt = StringMid($line, $stelle, 5)
    $array = StringRegExp($wehrt, "\d", 3)
    _ArrayDisplay($array)

    [/autoit]

    2 Mal editiert, zuletzt von kunstlust (27. August 2011 um 16:59)