| |
|
|
Thomas Zielinski | Hi, ich habe es nicht finden können oder es steht tatsächlich nirgendwo. Hat mich auf jeden Fall ein paar Nerven gekostet.
Nutzt man eine For-Schleife innerhalb einer Proc, so muss auch die Laufvariable in dieser Proc Deklariert sein und nicht ausserhalb.
Das geht:
Das geht nicht. (Fehlermeldung Variable i% ist nicht Deklariert [oder so ähnlich])
Was ich auch nicht finden kann: Muss ich vor der For ein "i% = 0" machen wenn i% vorher einen anderen Wert hatte, oder setzt For den Wert für i% selber? |
|
|
| |
|
|
|
Thomas Zielinski | Thomas Zielinski (26.10.2021)
Was ich auch nicht finden kann: Muss ich vor der For ein "i% = 0" machen wenn i% vorher einen anderen Wert hatte, oder setzt For den Wert für i% selber?
Ein kurzer Test bestätigt: For setzte den Wert der Laufvariable selbstständig zurück.
Völliges Chaos verursacht dann aber:
Declare i%
i% = 5
For i%,i%, 20//,1
zahl%[i%] = i%//<-- Ergebnis ist dann 0
EndFor
|
|
|
| |
|
|
|
RudiB. | Na Ja ...Startwert (I%=5) EndWert (i%=5) Schrittweite=20 ?????? wie soll das gut gehen, oder seh ich da was ganz falsch ??
Aber der erste Eintrag ist schon sehr mekwürdig....ein BUG ??? Hier ist dann wohl Roland gefragt.... |
|
|
| |
|
|
|
RudiB. | ....und hier ist Zahl%[ ] nicht deklariert... |
|
|
| Xprofan X4 Rudolf Beske / München
Hardware: NB Intel I9 - 16GByte RAM | 26.10.2021 ▲ |
|
|
|
|
Georg Teles | Naja, das For erwartet offensichtlich eine deklarierte Variable ... wenn For innerhalb einer Proc stattfindet, muss diese dort deklariert oder zumindest übergeben worden sein (als Parameter zB).
Laut der Hilfe ist genau das, was For...EndFor gegenüber der WhileLoop Schleife kann: eine Variable innerhalb der For Schleife abfragen, sogenannte Laufvariable (natürlich kann man innerhalb der WhileLoop Schleife das &loop verwenden, bei For-Schleifen kann man darauf verzichten, wenn man selbst die Variablenvergabe organisiert).
Diese Laufvariable wird natürlich für die For Schleife benötigt ... so ginge das, wenn die Variable global deklariert wurde:
Nach der For Schleife wird die Variable innerhalb der Proc noch den Wert behalten, außerhalb der Proc aber wieder auf 0 gesetzt. Hier kann nur Roland bei Bedarf erklären, was im Hintergrund passiert. |
|
|
| |
|
|
|
RGH | Ein kurzer Verweis auf die Hilfe:
Wichtig: Die Schleifenzähler muss eine lokale Variable sein, d.h. sie muss in der Prozedur deklariert werden, in der die FOR-Schleife ist. Ist sie im Hauptprogramm, muss die Variable auch dort deklariert werden.
(Delphi hält es zum Beispiel auch so.)
Gruß Roland |
|
|
| XProfan X4Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 01.11.2021 ▲ |
|
|
|