Subscript used with non-Array variable

    • Offizieller Beitrag

    Das ist die Fehlermeldung, die ich manchmal (nicht immer bekomme).
    Hier das Script:

    Spoiler anzeigen


    In Zeile 165 tritt der Fehler auf
    For $i = 1 To $INISection[0][0]
    For $i = 1 To $INISection^ ERROR

    Der fehler ist sicher berechtigt :D Ursache ist eine zu diesem Zeitpunkt gelöschte INI-Datei.
    Allerdings werden mir die Einträge aus der INI noch zur Auswahl (Wiederherstellung) angeboten.
    Ich hab es mehrfach probiert:
    1. neuen Eintrag (Schlüssel) angelegt
    2. diesen Eintrag gelöscht (Sicherung wird in INI erstellt)
    3. gelöschten Eintrag wiederhergestellt (Eintrag wird aus INI entfernt und wenn diese dann leer, wird INI gelöscht
    Manchmal gehts, manchmal nicht.

    Wahrscheinlich ein Aufruf am falschen Ort zur falschen Zeit.
    Naja, falls jemand den Fehler erspäht - ich bin dankbar für jeden Hinweis.

    • Offizieller Beitrag

    Hallo,

    der Fehler kommt wahrscheinlich daher das in der Liste ($List4) noch Section drinnen stehen die es nciht mehr gibt! Ändere mal die Funktion _BackupList so ab das die Liste immer erst geleert wird bevor die neuen Einträge eingetragen werden:

    vllt solltest du auch noch eine Meldung in _RestoreKeyFromBackupINI() ausgeben wenn die Section nicht existiert!

    • Offizieller Beitrag

    Danke Bernd,
    das war nicht die alleinige Ursache. Manchmal wurde die INI-Datei erstellt und manchmal nicht. Ursache soweit ich bis jetzt weiß :D : Das Script läuft schneller als der Plattenzugriff.
    Ich hab jetzt hinter dem Schreibbefehl eine Pause von 50 ms und bisher konnte ich den Fehler nicht wieder reproduzieren.

    Spoiler anzeigen

    Ich werde jetzt noch ein bischen an der Optik feilen und das fertige Produkt dann noch mal bei den Sripts einstellen.

    Edit:
    Da hab ich mich wohl zu früh gefreut. In der Kombination "Wiederherstellen" und gleich wieder "Löschen" wird kein INI-Eintrag geschrieben.
    Jetzt werd ich erst mal hundert Haltepunkte setzen und Variable für Variable checken.

    • Offizieller Beitrag

    kannst du mal das komplette aktualisierte Scrpit einstellen, dann schau ich nochmal drüber!

    • Offizieller Beitrag

    Heureka, ich habs!

    Ein wirklich blöder Fehler. Statt den Reg-typ aus StringSplit[2] zu entnehmen, war die [0] eingetragen. Na gut - jetzt klappt es.

    • Offizieller Beitrag

    war heut morgen noch etwas früh! ;)