Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Indizierung mehrdimensionales Array (nur mal am Rand) (https://www.delphipraxis.net/92589-indizierung-mehrdimensionales-array-nur-mal-am-rand.html)

MStoll 22. Mai 2007 23:21


Indizierung mehrdimensionales Array (nur mal am Rand)
 
Hi,

ich hab eine ganz einfache Frage:
war das bei Delphi schon immer so, dass man mehrdimensionale Arrays auf verschiedene Arten ansprechen kann?
z.b.
Daten[x,y,z]
Daten[x][y][z]
Daten[x,y][z]
Daten[x][y,z]

Oder wurde eine Syntax später übernommen?
Bin derzeit etwas durcheinander, da ich derzeit mit mehreren Sprachen zu tun hab (PHP, Delphi, C++, Java).
Welche Schreibweise benutzt ihr so? Oder wechselt ihr vll sogar je nach Situation?

Ich war selbst an die mit dem Komma gewöhnt, aber hab eben zufällig mal [x][y] geschrieben und mich dann gewundert, dass beides geht.

Gruß
Michael

alzaimar 23. Mai 2007 07:31

Re: Indizierung mehrdimensionales Array (nur mal am Rand)
 
Du kannst eine Matrix auch als Vektor von Vektoren auffassen.
Folgende Delkarationen sind äquivalent:
Delphi-Quellcode:
TMyArray = Array [0..x, 0..y] Of ...

TMyArray = Array [0..x] of Array of [0..y] Of ...
Es ist eigentlich ganz praktisch, da man so Matrizen auch Zeilenweise zuweisen kann.

Soweit ich mich erinnere, war das schon bei Wirth so (dem Pascal-Erfinder)

Lannes 23. Mai 2007 08:08

Re: Indizierung mehrdimensionales Array (nur mal am Rand)
 
Hallo,

Zitat:

Zitat von MStoll
Welche Schreibweise benutzt ihr so? Oder wechselt ihr vll sogar je nach Situation?
Ich war selbst an die mit dem Komma gewöhnt, ...

ich benutze auch die Schreibweise mit dem Komma,sowohl bei der Deklaration als auch beim Zugriff.

In dem Beispiel wird jeweils auf das erste Zeichen zugegriffen, alle Zugriffsarten -{1.} bis {4.}- sind möglich. Die Zugriffsart {4.} macht am besten deutlich was passiert.
Delphi-Quellcode:
var MyStrArr : Array [0..1,0..1] of String;
begin
  MyStrArr[0,0] := 'karl';
  MyStrArr[1,0] := 'Mustermann';
  MyStrArr[0,1] := 'Otto';
  MyStrArr[1,1] := 'Normaluser';

  {1.} MyStrArr[0][0][1] := 'K';
  {2.} MyStrArr[0,0,1] := 'K';
  {3.} MyStrArr[0][0,1] := 'K';
  {4.} MyStrArr[0,0][1] := 'K';    

  {1.} Showmessage(MyStrArr[0][0][1]);
  {2.} Showmessage(MyStrArr[0,0,1]);
  {3.} Showmessage(MyStrArr[0][0,1]);
  {4.} Showmessage(MyStrArr[0,0][1]);


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 Uhr.

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