Seite 1 von 1

Ist es möglich einen Array von ... bis zu dimensionieren ?

Verfasst: 07.06.2017 18:03
von Vampirmonster
In QB64 (auch in QuickBasic) gibt es ja folgende Möglichkeit :

DIM Speicher(5 to 17)

Der Array Speicher wird von 5 bis 17 definiert, die Indizes 0 bis 4 kommen nicht vor, und belegen keinen Speicherplatz.

Außerdem sind bei QB64 alle Speicherinhalte von 5 bis 17 automatisch mit der Zahl Null belegt, beziehungsweise bei Stringarrays mit dem Leerstring.

Versucht man dennoch zum Beispiel Speicher(4) oder Speicher(18) abzurufen und so weiter, dann erhält man die Fehlermeldung "Subscipt out of Range", was auch beabsichtigt ist.

Dasselbe gilt für zum Beispiel DIM Feld(9 to 19, 3 to 87, 21 to 25) und so weiter.

Ist das auch in PureBasic möglich, und wenn ja, wie sieht das in PureBasic aus ?

Hier mal ein kleines Programm in QB64, damit man auch sieht was ich meine :

Code: Alles auswählen

CLS

DIM Speicher(5 TO 17)

PRINT Speicher(8)

DIM Feld$(9 TO 19, 3 TO 87, 21 TO 25)

Feld$(10, 17, 24) = "Katze"

PRINT Feld$(10, 17, 24)

PRINT Feld$(18, 60, 23)

PRINT "Ende"

END
LG

Re: Ist es möglich einen Array von ... bis zu dimensionieren

Verfasst: 07.06.2017 18:20
von GPI
Nö gibt es nicht, du wirst immer ein Offset addieren bzw. subtrahieren müssen.
Oder du überlegst dir, das selbst bei einen Quod und 5 ungenutzten werden gerade mal 5*8 = 40 Byte verschwendest. Bei Kisten mit minimum 4GB Ram. Kann man einfach vernachlässigen.

Edit:
Achja, du solltest dir mal LinkedList und Maps anschauen. Die sind in der Regel deutlich flexibler. Ich benutzt mittlerweile kaum noch Arrays.

Re: Ist es möglich einen Array von ... bis zu dimensionieren

Verfasst: 07.06.2017 18:38
von Vampirmonster
@ GPI

Vielen Dank für deine Antwort !