Strings werden irgendwann Leerstrings

  • Hallo Leute,
    ich nutze AutoIt 3.212.0 mit Scite und bin eigentlich ein Anfänger, denn mein Programmier-Kenntnisse stammen noch aus Basic-Zeiten :rolleyes:
    Folgendes Problem...
    Ich habe ein Programm geschrieben daß in einer Schleife $i-mal durchlaufen wird. (gewünscht wäre etwa 500mal)
    Innerhalb dieses Programms wird aus einer von mir mit dem Text-Editor erstellten txt-Datei Zeile für Zeile (abhängig von $i) mithilfe von $line, FileOpen und FileRead ein String gelesen und in ein Dokument geschrieben. Die txt-Datei umfasst etwa 500 Zeilen...
    Das funktioniert soweit gut, doch nach mehr oder weniger 100 Durchläufen wird für $line auf einmal ein Leerstring zurückgegeben, obwohl die zugehörige Zeile in der txt-Datei nicht leer ist...
    Ich muß also das Script stoppen, $i per Hand auf die Zeilenzahl aktualisieren und wieder neu starten, dann läuft es wieder ca. 100 mal und gibt dann bei z.B. bei Zeile 200 einen weiteren Leerstring wieder...

    Meine Frage nun gibt es eine Art overflow der verhindert daß eine String-Variable mehr als eine bestimmte Anzahl Werte annehmen kann ?
    Oder darf eine Txt-Datei nur eine bestimmte Anzahl geöffnet oder geschlossen werden ?

  • Oder darf eine Txt-Datei nur eine bestimmte Anzahl geöffnet oder geschlossen werden ?


    Ich meine mich erinnern zu können, dass das dauernde öffnen und schließen einer Datei zu problemen führen kann.

    • Öffne doch die Datei einmal vor der Schleife
    • Arbeite in der Schleife mit dem Filehandle (wird beim öffnen der Datei zurückgegeben)
    • Nachdem die Schleife durch ist, schließt du die Datei (mit Filehandle) wieder.

    PS:
    Das Sktipt zu posten ist keine schlechte Idee, so müssen wir nicht raten ;)

  • Vielen Dank - die Datei vor der Schleife zu öffnen hat tatsächlich das Problem beseitigt - warum auch immer...
    ^^

  • schön, dann ist dein Problem ja gelöst, schön wäre es allerdings auch wenn du den Thread auf gelöst setzt. Einfach 1. Beitrag bearbeiten, Präfix (nähe Überschrift) ändern und speichern (absenden)

    mfg autoBert