Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie ermittelt man die Grenzen mehrdimensionaler Arrays? (https://www.delphipraxis.net/133722-wie-ermittelt-man-die-grenzen-mehrdimensionaler-arrays.html)

Popov 7. Mai 2009 17:43

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Ja, aber nur weil die erste Dimension [0..100, 10..10000] bei 0 anfängt. Würde sie bei 5 anfangen, also [5..100, 10..10000] würde 0 einen Fehler ausgeben, erst High(a[5]) würde 10000 zurück geben. Der Wert in der eckigen Klammer muß innerhalb der Grenzen der ersten Dimension liegen. Das habe ich bei ersten Antwort noch nicht verstanden.

oki 7. Mai 2009 17:51

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Zitat:

Zitat von Popov
Ja, aber nur weil die erste Dimension [0..100, 10..10000] bei 0 anfängt. Würde sie bei 5 anfangen, also [5..100, 10..10000] würde 0 einen Fehler ausgeben, erst High(a[5]) würde 10000 zurück geben. Der Wert in der eckigen Klammer muß innerhalb der Grenzen der ersten Dimension liegen. Das habe ich bei ersten Antwort noch nicht verstanden.

und genau aus diesem Grund kam von mehreren Leuten dieser Hinweis:
(als erstes von Himitsu)
Delphi-Quellcode:
i := High(a[Low(a)]); // Obergrenze des Unterarray vom 1. Array der obersten Ebene
i := Low(a[Low(a)]); // Untergrenze des Unterarray vom 1. Array der obersten Ebene
Durch das Low bist du ja nicht auf die direkte Angabe des nidriegsten Wertes angewiesen, sondern läßt sie ermitteln. High tut das Gleiche wie bei DeddyH zu sehen.

Gruß oki

DeddyH 7. Mai 2009 17:52

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Deshalb ja auch meine Verrenkungen mit High(a[Low(a)]) usw.

[edit] oki war schneller und ausführlicher. *g* [/edit]

Popov 7. Mai 2009 17:58

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Das ist mir schon klar, aber zuerst muß man ja verstehen warum es so ist. Warum steht da Low in High(a[Low(a)]). Zuerst muß der Groschen fallen.

DeddyH 7. Mai 2009 18:08

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Die innere Klammer steht für die erste Dimension.

Popov 7. Mai 2009 19:17

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Und was ist das a in der Klammer?

DeddyH 7. Mai 2009 19:24

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Das Array, was denn sonst?

Popov 7. Mai 2009 19:26

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Aha.

Edit:

Ok, jetzt verstehe ich was DeddyH will. Ich dachte er will mich etwas ärgern, aber er bezieht sich wohl auf den Beitrag mit dem Groschen. Sorry DeddyH, der Groschen ist bereits gefallen. Ich bezog meinen Satz mit dem Groschen rückwirkend auf Bernhard Geyers erste Antwort. Da ist bei mir der Groschen noch nicht gefallen. Inzwischen schon. Ich gebe aber zu, daß der Satz so kling also ob ich es noch nicht verstanden habe.

Ok DeddyH, mein Fehler, sorry, wollte dich nicht ärgern. :wink:

DeddyH 7. Mai 2009 19:30

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Denken wir mal etwas anders.
Delphi-Quellcode:
var a: array[1..10] of array[3..7] of irgendwas;
//andere Schreibweise
var a: array[1..10,3..7] of irgendwas;

//Letztes Element der 1. Dimension
bla := High(a);

//Letztes Element (2. Dimension) des ersten Elementes (1. Dimension)
bla := High(a[Low(a)]);
Etc. pp.

Popov 7. Mai 2009 19:32

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?
 
Nochmal sorry:

Zitat:

Zitat von Popov
Edit:

Ok, jetzt verstehe ich was DeddyH will. Ich dachte er will mich etwas ärgern, aber er bezieht sich wohl auf den Beitrag mit dem Groschen. Sorry DeddyH, der Groschen ist bereits gefallen. Ich bezog meinen Satz mit dem Groschen rückwirkend auf Bernhard Geyers erste Antwort. Da ist bei mir der Groschen noch nicht gefallen. Inzwischen schon. Ich gebe aber zu, daß der Satz so kling also ob ich es noch nicht verstanden habe.

Ok DeddyH, mein Fehler, sorry, wollte dich nicht ärgern. :wink:



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr.
Seite 3 von 4     123 4      

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