Referenz - PRESERVE
Syntax: REDIM PRESERVE array(...) AS Datentyp
Typ: Schlüsselwort
Kategorie: Deklaration
PRESERVE wird zusammen mit REDIM benutzt, um ein Array zu redimensionieren, ohne seine Elemente zu löschen. Wenn das Array vergrößert wird, werden die neuen Elemente mit 0 (bzw. mit Nullstrings) initiiert; die alten Elemente bleiben erhalten.
REDIM PRESERVE funktioniert nur bei DYNAMIC-Arrays; STATIC-Arrays können nicht redimensioniert werden. Ab der Compilerversion 0.17 wird das Meta-Schlüsselwort '$DYNAMIC jedoch nicht mehr akzeptiert. Arrays sind nur dynamisch, wenn sie mit REDIM oder ohne Dimensionsangabe erstellt wurden.
Wichtig: Das Schlüsselwort kann nur bei eindimensionalen Arrays ohne Probleme verwendet werden, bei mehrdimensionalen Arrays bleibt wegen der Speicherverwaltung bei Arrays nur der erste Index erhalten!
Beispiel:
REDIM array(1 TO 3) AS INTEGER
array(1) = 10
array(2) = 5
array(3) = 8
REDIM PRESERVE array(2 TO 9) AS INTEGER
FOR i AS INTEGER = 2 TO 9
PRINT "array(" & i & ") = " & array(i)
NEXT
SLEEP
Dadurch wird das Element 1 auf das 2. Element des neuen Arrays verschoben.
Die Ausgabe sieht dann so aus:
array(2) = 10
array(3) = 5
array(4) = 8
array(5) = 0
array(6) = 0
array(7) = 0
array(8) = 0
array(9) = 0
Unterschiede zu QB:
PRESERVE wird erst in PDS 7.1 unterstützt.
Siehe auch:
DIM, REDIM, STATIC (Metabefehl), DYNAMIC (Metabefehl), Arrays
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|