Autor: Karl-Jürgen Hilger (---.dyn.telefonica.de)
Datum: 09.02.16 16:54
Hallo,
ich habe es mit einem kuriosen Problem zu tun.
Kurios deshalb, weil ich einerseits keinen Code vorlegen kann, der das Problem reproduziert, aber andererseits trotzdem sehr gut begründen kann, warum das Problem nicht an mir oder meinem Programm liegen kann.
Also - um ein schon gut funktionierendes Programm zu erweitern, deklariere ich in einer Includedatei 2 zusätzliche Variable:
Declare Integer item, grp
Später werden diese Variable als Schleifenzähler genutzt
Nutze ich sie in For-Schleifen, gelten sie als "nicht deklariert".
Nutze ich sie bei WhileLoop- Schleifen, geht alles klar.
For item,2
For grp,5
hML[item,grp] = Create("List", 0)
hTL[item,grp] = Create("List", 0)
EndFor
EndFor
Der Interpreter stoppt mit der Fehlermeldung, daß die Variable "item" nicht deklariert sei.
Das kann aber nicht sein, weil die Variablen in einer vergleichbaren While- Schleife an genau derselben Stelle sehr wohl funktionieren:
Das ist auch der Grund, warum der Fehler eigentlich nicht von mir oder meinem Programm verursacht werden kann.
WhileLoop 2
item = &loop
WhileLoop 5
grp = &loop
hML[item,grp] = Create("List", 0)
hTL[item,grp] = Create("List", 0)
EndWhile
EndWhile
Wenn man die Variablen direkt vor der FOR- Schleife nochmal deklariert, trotz bestehender Deklaration in der Include
var int item = 0
var int grp = 0
so funktioniert auch die FOR-Schleife - ohne Fehlermeldung wegen doppelter Deklaration.
Auf mögliche Tippfehler hab ich natürlich x-mal gecheckt.
Eine Reproduktion in einem Miniprogramm, welches sogar auf dieselbe Include zugreift, war mir nicht möglich.
Vielleicht reicht diese Beschreibung, um eine "Witterung" aufzunehmen.
Gruß
KJ
|
|