Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Length bestimmen Mehrdimensionale Arrays (https://www.delphipraxis.net/200506-length-bestimmen-mehrdimensionale-arrays.html)

Int3g3r 26. Apr 2019 13:56

Delphi-Version: 10.1 Berlin

Length bestimmen Mehrdimensionale Arrays
 
Guten Tag,

Wie Bestimmt man von einem Mehrdimensionalen Array die Länge der 2. Dimension?

Zitat:

http://www.delphibasics.co.uk/RTL.asp?Name=length
The length of a Multi-dimensional array is always that of the first subarray - the left most defined dimension.
Delphi-Quellcode:
SetLength(TestArray,5,10);
Length(TestArray); //Gibt nur die 1.Dimension zurück.

Besten Dank,
Int3g3r

Klaus01 26. Apr 2019 13:58

AW: Length bestimmen Mehrdimensionale Arrays
 
Delphi-Quellcode:
length(TestArray[0])
Grüße
Klaus

Int3g3r 26. Apr 2019 14:05

AW: Length bestimmen Mehrdimensionale Arrays
 
Zitat:

Zitat von Klaus01 (Beitrag 1431060)
Delphi-Quellcode:
length(TestArray[0])
Grüße
Klaus

Danke! :thumb:

Dennis07 26. Apr 2019 14:38

AW: Length bestimmen Mehrdimensionale Arrays
 
Ein 2-dimensionales Array ist ja nix anderes als ein Array von eindimensionalen arrays. Also kannst du diese einfach über den Index indizieren.
Statt a[0, 1] kannst du also auch a[0][1] schreiben. :wink:

bernau 26. Apr 2019 16:14

AW: Length bestimmen Mehrdimensionale Arrays
 
Zitat:

Zitat von Klaus01 (Beitrag 1431060)
Delphi-Quellcode:
length(TestArray[0])

Aber vorher die erste Dimension des Arrays testen. Wenn length(TestArray) = 0, dann fliegt man mit length(TestArray[0]) auf die Nase.

Rudy Velthuis 26. Apr 2019 22:03

AW: Length bestimmen Mehrdimensionale Arrays
 
Zitat:

Zitat von bernau (Beitrag 1431075)
Zitat:

Zitat von Klaus01 (Beitrag 1431060)
Delphi-Quellcode:
length(TestArray[0])

Aber vorher die erste Dimension des Arrays testen. Wenn length(TestArray) = 0, dann fliegt man mit length(TestArray[0]) auf die Nase.

Nach
Delphi-Quellcode:
SetLength(MeinArray, X, Y)
ist das Array rechteckig, aber bedenke, dass jedes Unterarray auch eine eigene Länge haben kann.

Vorbild:
Code:
    type
      TMyArray = array of array of Integer;
    var
      MA: TMyArray;
    begin
      SetLength(MA, 10, 10); // Noch rechteckig, 10 x 10
      SetLength(MA[0], 17); // Nicht mehr rechteckig
      SetLength(MA[3], 7);  // Jetzt erst recht nicht mehr
Das nennt man nicht umsonst ein "ragged array" ("Flatterarray", analog zu Flattersatz). In wirklichkeit ist das nämlich:
Code:
    type
      TMySubArray = array of Integer;
      TMyArray = array of TMySubArray;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz