Einzelnen Beitrag anzeigen

BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#18

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 22. Jan 2015, 09:35
Sorry für meinen kenntinsfreien Einwurf:
Kann man da nicht irgendwie "rückwärts" durch das zweidimensionale? Array parsen?
Die Länge auszurechnen ist ja nicht das Problem und in einem Einzeiler gelöst.

Die Frage ist, ob es denn wirklich keine integrierte Delphi-Funktion dafür gibt um die Länge eines Array, welches in einer Variante gespeichert ist, auszulesen.

Für den normalen Datentyp Array gibt es:
Low(Array), High(Array) und eben Length(Array)

Ist das Array in einer Variante, dann gibt es:
VarArrayLowBound(VarArray) und VarArrayHighBound(VarArray)

aber so wie es scheint kein VarArrayLength(VarArray)

Abgesehen von der erforderlichen Sonderbehandlung leerer VarArrays, ergibt sich die Länge eines Arrays immer aus der Differenz des höchten Index´ und des niedrigsten Index` plus eins.
Bei einem leeren VarArray ist VarArrayHighBound(VarArray) -1 und daher funktioniert auch dort der folgende Einzeiler:
Länge := (VarArrayHighBound(VarArray,1) - VarArrayLowBound(VarArray,1) +1)
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower (22. Jan 2015 um 09:40 Uhr)
  Mit Zitat antworten Zitat