High bei mehrdimensionalen Arrays
spacer
Autor Nachricht
J.Borchert
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 137

WIN95 bis WIN-XP
D7
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

_________________
// Die Elektriker-Arbeitsmethode: Ohne Spannung zur Arbeit.
// Widerstand leisten. Jeden Kontakt zur Leitung vermeiden!
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
EE-Maler
Beiträge: 1754
Erhaltene Danke: 62

Windows XP
Delphi (2005 Bug Edition), Java (Eclipse), Haskell (ghci), C++ (Visual Studio 2010, Qt Creator)
BeitragVerfasst: Fr 06.01.12 20:03 
Na dein Beispiel simmt ja garnicht.

Wenn es ein array [0..5] of array [0..3] of 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 markieren
1:
2:
if Length(A)<>6 then
//irgendwas ist total schief gelaufen


Die zweite Dimension kannst du so auslesen:
ausblenden Delphi-Quelltext markieren
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 markieren
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
Jen, [this computer] is infected. If this was a human being, I'd shoot it in the face. (IT Crowd)

Für diesen Beitrag haben gedankt: BenBE, J.Borchert
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home