- Thread starter
- #441
Das ist seltsam.habe ich keinen Fehler mehr.
Prinzipiell kann man in AutoIt Variablen Global oder Lokal deklarieren. Man muss eine Variable aber eigentlich gar nicht deklarieren. Dann wird das Deklarieren automatisch bei der ersten Verwendung erledigt. Allerdings ist die Verwendung von Variablen ohne Deklaration fehleranfälliger, deswegen wird das meist trotzdem gemacht.
Global bedeutet, die Variable steht überall zur Verfügung, Local bedeutet die Variable steht nur innerhalb der Funktion, in der sie deklariert wurde, zur Verfügung. Local ist also eine Untermenge von Global. Die Verwendung einer Globalen Variable statt einer Lokalen, kann also prinzipiell keinen Unterschied machen... Anders rum ist da natürlich ein deutlicher Unterschied.
Da man Variablen ja immer wieder mit neuem Inhalt füllen kann, spart es Arbeitsspeicher wenn man Variablen "Recycelt". Deswegen ist einmal Global deklarieren und dann immer wieder als File Handle verwenden sparsamer und schneller als jedes mal aufs neue eine lokale Variable fürs File Handle zu deklarieren...
Local wird eigentlich nur innerhalb von Funktionen verwendet. Eine If Then Verzweigung ist aber keine Funktion. Die Abfrage ist im "Haupt- Programmablauf" also außerhalb irgendeiner Funktion angesiedelt. An der Variable bzw deren Inhalt ändert sich dadurch rein gar nichts, außer das sie jetzt mehrfach deklariert werden muss, was höchstens minimal langsamer sein könnte...
Wobei, vielleicht ist das ja tatsächlich ein Timing Problem und durch diese "unabsichtliche Bremse" passt das Timing wieder...
Aber da diese Variable funktionsübergreifend mehrfach verwendet wird, hat das Fehlen der Globalen Deklaration unter Umständen in anderen Programmteilen negative Auswirkungen. Mal abwarten, was da noch für Probleme auftauchen...