Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi halbdynamische Arrays (https://www.delphipraxis.net/128817-halbdynamische-arrays.html)

Ginko 6. Feb 2009 19:42


halbdynamische Arrays
 
Hallo, ist es möglich ein zweidimensionales Array derart anzulegen, dass zum Beispiel
der X-Wert konstant und der Y-Wert dynamisch ist? also zum Beispiel so:
Delphi-Quellcode:
 THalbDyn = array[0..2] of array of integer;
Ich habe es so gemacht, bekomme aber immer Fehler, wenn ich versuche auf
HalbDyn[1,(0-gesetzte Länge)] zuzugreifen.
Die Länge habe ich so gesetzt setlength(HalbDyn[0],y);
Ansonsten scheint es aber zu klappen, vielleicht habe ich auch irgendwo anders einen Fehler gemacht...

Dax 6. Feb 2009 19:43

Re: halbdynamische Arrays
 
Delphi-Quellcode:
HalbDyn[1][0-gesetzte Länge]

globetrotter77 6. Feb 2009 19:56

Re: halbdynamische Arrays
 
oder ganz einfach so:

Delphi-Quellcode:
var HalbDyn: array of array of integer;
begin
  SetLength(HalbDyn, 3, laenge);
end;

Florian H 6. Feb 2009 20:08

Re: halbdynamische Arrays
 
Zitat:

Zitat von Ginko
HalbDyn[1,(0-gesetzte Länge)]
[...]
setlength(HalbDyn[0],y);

:gruebel:

globetrotter77 6. Feb 2009 20:15

Re: halbdynamische Arrays
 
Zitat:

Zitat von Florian H
Zitat:

Zitat von Ginko
HalbDyn[1,(0-gesetzte Länge)]
[...]
setlength(HalbDyn[0],y);

:gruebel:

mit
setlength(HalbDyn[0],y);
hast du quasi nur die erste (bzw. 0. in Delphi-Numerierung) Zeile auf die gewünschte Länge gebracht.
danach willst du aber auf die zweite (bzw. 1.) Zeile zugreifen. Da ist aber noch nichts reserviert.
ich nehme mal an, dass du alle Zeilen gleich lang haben willst, oder?
dann solltest du sie auch gemeinsam setzen!

uligerhardt 6. Feb 2009 20:33

Re: halbdynamische Arrays
 
Zitat:

Zitat von Ginko
Ich habe es so gemacht, bekomme aber immer Fehler, wenn ich versuche auf
HalbDyn[1,(0-gesetzte Länge)] zuzugreifen.

Du darfst nur bis gesetzte Länge - 1 indizieren.

DeddyH 6. Feb 2009 20:39

Re: halbdynamische Arrays
 
Und genau deshalb empfiehlt es sich immer, Low() und High() zu verwenden.

Ginko 7. Feb 2009 15:04

Re: halbdynamische Arrays
 
Ich hab's dann doch auf die einfache Art gemacht. Danke Euch!! :thumb:
Also so
Delphi-Quellcode:
var HalbDyn: array of array of integer;
begin
  SetLength(HalbDyn, 3, laenge);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 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