DynamicArray
-
Hallo,
ich habe in meinem Programm ein Array mit DynamicArray deklariert.
Laut der Hilfe kann ich mit der Eigenschaft Length die Länge bestimmen und High liefert dann Length - 1 zrück.
Wenn ich Length = 0 setze sollte High -1 liefern. Ich erhalte dann aber 0 zurück.
Dasselbe erhalte ich bei Length = 1.
Es funktioniert erst bei Length = 2 richtig.Da ich mir nicht sicher war, ob es an meinem Objekt lag habe ich das ganze einfach mit DynamicArray<int> Test; ausprobiert.
Ergebnis war gleich.Gibt es hier eine Einstellung die ich ändern muß oder woran liegt das.
Ich arbeite mit dem BCB5.Danke schon mal im Voraus.
-
Low und High geben immer den gültigkeitsbereich des DynamicArrays an.
da Low immer 0 liefert kann High als kleinsten wert auch nur 0 liefern
-
Hallo Jester2000,
danke für die schnelle Antwort.
Ich habe einen Teil eines Delphprogramms umgeschrieben.
In der Delphi-Hilfe heisst es:
Once a dynamic array has been allocated, you can pass it to the standard functions Length, High, and Low. Length returns the number of elements in the array, High returns the array’s highest index (that is, Length – 1), and Low returns 0. In the case of a zero-length array, High returns –1 (with the anomalous consequence that High < Low).
In der Hilfe vom Builder steht:
Beschreibung
Die Eigenschaft High gibt Length-1 zurück.
Wenn ich das richtig verstehe, dann muß doch auch hier bei length=0 als Rückgabe -1 sein.
Mein Problem daran ist, daß ich sonst über alle wo "High == -1" abgefragt wird, dies in "Length==0" ändern muß.
-
das wirst du wohl machen müssen, da High niemals -1 zurückliefern wird
aber mit der text-ersetzung vom bcb sollte das auch nicht wirklich ein problem seinwenn ich dein zitat mal zitieren darf:
(with the anomalous consequence that High < Low)
bei delphi mag das ja vielleicht gehen, aber selbst da haben sie ja offenbar schon erkannt dass es unnormal ist, wenn High < Low ist.
-
habe ich schon gemacht.
Jetzt geht es.
Klar, auch bei Delphi merken die was normal ist und was nicht.Danke nochmals