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

Anfängerfragen zum Programmieren mit PureBasic.
Vampirmonster
Beiträge: 15
Registriert: 08.02.2016 19:18

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

Beitrag 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
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

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

Beitrag 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.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Vampirmonster
Beiträge: 15
Registriert: 08.02.2016 19:18

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

Beitrag von Vampirmonster »

@ GPI

Vielen Dank für deine Antwort !
Antworten