Bug im OO-Basic??

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

hoefri55
**
Beiträge: 37
Registriert: Do, 16.09.2004 10:16
Wohnort: Meppen

Bug im OO-Basic??

Beitrag von hoefri55 »

Hallo,

mir ist da was merkwürdiges passiert.

Ich habe in meinem Macro 3 Arrays definiert:

dim vonzeile(), biszeile(), leerefelder() as integer

im code dann:

redim vonzeile(1)
redim biszeile(1)
redim leerefelder(1)

um die Felder mit Werten belegen zu können. In der dritten Zeile bleibt der Interpreter hängen und meldet einen
"Syntax-Fehler: Variable leerefelder bereits definiert"
Ich bin mir ziemlich sicher, da nichts falsch gemacht zu haben.
Nachdem ich vieles ausprobiert und vergeblich versucht hatte, habe ich dann ein weiteres Array definiert. Mein code sieht jetzt folgendermassen aus:

dim vonzeile(), biszeile(), leerefelder(), dummy() as integer

im code dann:

redim vonzeile(1)
redim biszeile(1)
redim leerefelder(1)

Und er läuft ohne Probleme!

Woran kann das denn liegen? Bin ich da auf einen Bug gestoßen?

F. Hömmeke
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Beitrag von Charly »

Hallo!

Dein Problem ist eher ein Syntaxfehler.

dim vonzeile(), biszeile(), leerefelder() as integer
Du hast "leerefelder" als Typ "integer" definiert. Wenn du ein als Typ definiertes Feld mit Redim ändern willst mußt du die geänderte Variable wieder mit dem gleichen Typ definieren. Also

Code: Alles auswählen

redim leerefelder(1)  as integer
As Integer in deinem Dim-Befehl bezog sich nur auf die letzte Variable. Daher haben die anderen Variablen funktioniert, da bei diesen keine Typ-deklaration erfolgte. Und als du die Dummy-Variable eingefügt hast, war "leerefelder" wieder ohne Typdeklaration, da sich Integer jetzt auf die Dummyvariable bezog.

Gruß
Charly
hoefri55
**
Beiträge: 37
Registriert: Do, 16.09.2004 10:16
Wohnort: Meppen

Beitrag von hoefri55 »

Das ist eine logische Erklärung, Danke.
Man merkt, glaube ich, dass ich derzeit meine Macros aus Excel umarbeite. Da habe ich dieses Problem nicht gehabt. Mal sehen, was sonst noch so alles kommt.

F. Hömmeke
Antworten