Autor Beitrag
J.Borchert
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 150

WIN10
XE2 Professional
BeitragVerfasst: Fr 06.01.12 18:44 
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

_________________
Wer immer macht was er schon kann, bleibt immer das, was er schon ist. "H.Ford"
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
if Length(A)<>6 then
//irgendwas ist total schief gelaufen


Die zweite Dimension kannst du so auslesen:
ausblenden 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:
ausblenden 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.

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)

Für diesen Beitrag haben gedankt: BenBE, J.Borchert