Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#14

AW: Mehrdimensionales Array an anderes anhängen

  Alt 15. Aug 2014, 12:39
Bei Mehrdimensionalen Arrays gibt Length() immer die Länge der aktuellen Dimension im Argument zurück. (Mit Zeilen/Spalten haben Arrays übrigens nichts zu tun, das ist nur deine Interpretation )

Delphi-Quellcode:
var
  MyArray: array of array of Integer;
begin
  foo := Length(MyArray); // Länge der 1. Dimension
  foo := Length(MyArray[0]); // Länge der 2. Dimension
end;
Man muss es also so sehen, dass ein zweidimensionales Array im Grunde ein eindimensionales Array von weiteren eindimensionalen Arrays ist. Wenn man alle "sekundären" Arrays gleich lang macht (was man mit SetLength(MyArray, x, y) tut), dann reicht es die Länge eines der Elemente vom primären Array zu erfragen um die Länge aller sekundären zu erhalten.

Man kann aber auch sowas machen:
Delphi-Quellcode:
var
  MyArray: array of array of Integer;
begin
  SetLength(MyArray, 3);
  SetLength(MyArray[0], 2);
  SetLength(MyArray[1], 8);
  SetLength(MyArray[2], 7);
end;
Dann hat man quasi eine Tabelle, bei der jede Spalte eine unterschiedliche Anzahl von Zeilen hat (oder umgekehrt, je nach dem wie man es interpretiert eben). Dann müsste man für jedes primäre Array einzeln die Länge seines jeweiligen sekundären Arrays ermitteln. (In praktischem Einsatz sehe ich sowas aber sehr selten. Aber es wäre möglich!) Und man ist natürlich nicht auf nur 2 Dimensionen beschränkt. Da kann man echt witzige Dinge mit machen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat