Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - High bei mehrdimensionalen Arrays


J.Borchert - Fr 06.01.12 18:44
Titel: High bei mehrdimensionalen Arrays
Ich weiß nicht, wie ich die Länge oder High der Dimensionen eines mehrdimensionalen Arrays abfrage:

setlength(a, 6, 4); // 1.Dimension = 6 lang, 2.Dimension = 4 lang

012345
abcdef
ghijkl
mnopqr

bezieht sich jetzt length(a[0]) auf die erste oder zweite Dimension und wie frage ich die Länge der anderen Dimension ab?


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Sa 07.01.2012 um 12:11


Xion - Fr 06.01.12 20:03

Na dein Beispiel simmt ja garnicht.

Wenn es ein array [0..5of array [0..3of char ist z.B. dann wären es 6 Wörter mit je 4 Zeichen (nicht umgekehrt).

Die Länge der ersten Dimension kriegst du ganz normal mit Length:

Delphi-Quelltext
1:
2:
if Length(A)<>6 then
//irgendwas ist total schief gelaufen


Die zweite Dimension kannst du so auslesen:

Delphi-Quelltext
1:
2:
if Length(A[0])<>4 then
//irgendwas ist total schief gelaufen


Der Grund dafür ist, dass du die zweite Dimension auch verschieden machen kannst. Beispiel:

Delphi-Quelltext
1:
2:
3:
SetLength(A,10);
for B:= 0 to High(A) do
  SetLength(A[B],B);

In diesem Fall ist jedes der arrays (zweite Dimension) verschieden lang.