ReDim Preserve Array

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

Moderator: Moderatoren

Niels
*****
Beiträge: 212
Registriert: Mi, 16.06.2004 06:46
Wohnort: Heikendorf

ReDim Preserve Array

Beitrag von Niels »

Hallo,

unter Windows geht folgender Befehl super:

Code: Alles auswählen

ReDim Preserve Arrayname ( neuer_Wert, gleicher_Wert_wie_vorher)
super, unter Linux bekomme ich die Meldung: "Basic-Syntaxfehler. Variable Arrayname bereits definiert." Logo! Deshalb ja auch ein ReDim und kein Dim. Ich will das Array ja nur vergrößern.
Hat da jemand eine Idee, ich bin dankbar für den kleinsten Hinweis.

Ciao
Niels
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Ich weiß leider nicht ob Du unter Windows denselben Code verwendest, möglicherweise ist dort ein Fehler. Die Fehlermeldung weißt darauf hin das die Variable schon vorhanden ist, da das wohl so sein soll sehe ich keinen Grund außer vielleicht etwas sehr weit Hergeholtes:

Wenn Du Dir sicher bist das die ursprüngliche Deklaration so aussah:

Code: Alles auswählen

Dim Arrayname(a,b)
sehe ich keinen Grund für den Fehler, aber vielleicht hast Du ursprünglich einen Typ zugewiesen, also:

Code: Alles auswählen

Dim Arrayname(a,b) As <Typ>
dann müßtest Du das jetzt wohl wieder tun:

Code: Alles auswählen

ReDim Preserve Arrayname ( neuer_Wert, gleicher_Wert_wie_vorher) As <Typ>
weil Du den Typ der Variable nicht umdeklarieren kannst, nur die Größe des Array. (Gibst Du keinen Typ an ist die Variable oder Array vom Typ Variant, zumindest unter VB, ich weiß nicht genau ob das StarBasic genauso handhabt)

Vielleicht war mein Hinweis unnötig, weil Du wußtest das es so ist, aber das ist das Einzige was mir einfällt. Ich habe das auch nicht überprüft, sondern nur aus "dem Bauch heraus" geschrieben und vermute nur das es so sein könnte.


Gruß
Stephan
Niels
*****
Beiträge: 212
Registriert: Mi, 16.06.2004 06:46
Wohnort: Heikendorf

Beitrag von Niels »

Stephan hat geschrieben:Ich weiß leider nicht ob Du unter Windows denselben Code verwendest, möglicherweise ist dort ein Fehler.
Jo, ist 100% der gleiche Code, oder besser noch genau dei Gleiche Vorlage.
Stephan hat geschrieben:Wenn Du Dir sicher bist das die ursprüngliche Deklaration so aussah:

Code: Alles auswählen

Dim Arrayname(a,b)
sehe ich keinen Grund für den Fehler, aber vielleicht hast Du ursprünglich einen Typ zugewiesen, also:

Code: Alles auswählen

Dim Arrayname(a,b) As <Typ>
dann müßtest Du das jetzt wohl wieder tun:

Code: Alles auswählen

ReDim Preserve Arrayname ( neuer_Wert, gleicher_Wert_wie_vorher) As <Typ>
weil Du den Typ der Variable nicht umdeklarieren kannst, nur die Größe des Array. (Gibst Du keinen Typ an ist die Variable oder Array vom Typ Variant, zumindest unter VB, ich weiß nicht genau ob das StarBasic genauso handhabt)

Vielleicht war mein Hinweis unnötig, weil Du wußtest das es so ist, aber das ist das Einzige was mir einfällt. Ich habe das auch nicht überprüft, sondern nur aus "dem Bauch heraus" geschrieben und vermute nur das es so sein könnte.
Danke, der Hinweis ist sehr nötig gewesesen, da ich davon ausgegangen bin, dass ich den Arraytyp bereits deklariert habe und diese Angabe daher nicht noch einmal brauche. Dazu habe ich noch das Handbuch unvollständig gelesen (das AS Typ ist recht weit eingerückt). Werde die Geschichte nacher mal unter Linux testen.
Das ist mal wieder typisch Linux :D . Pingelig wie sonstwas - einfach kein Hang zur krativen Codeinterpretation :twisted: .

Ciao
Niels
Wer lesen kann ist klar im Vorteil.
Niels
*****
Beiträge: 212
Registriert: Mi, 16.06.2004 06:46
Wohnort: Heikendorf

Beitrag von Niels »

Stephan hat geschrieben: Ich habe das auch nicht überprüft, sondern nur aus "dem Bauch heraus" geschrieben und vermute nur das es so sein könnte.
Den Bauch hätte ich auch gerne. Funktioniert Suuuper!

Danke
Niels
Wer lesen kann ist klar im Vorteil.
Antworten