Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Array
Farhan - Fr 01.08.08 01:12
Titel: Array
Servus,
Ich habe momentan ein Verständnisproblem mit den sogenannten ,, Arrays ".
Folgendes ist mir unklar:
High(my2DIntArray);
Dieser Aufruf liefert 2 zurück, denn das Array enthält ja drei Zeilen! Ein
Aufruf von
ʺLengthʺ würde 3 zurück geben. Um den höchsten zulässigen Index der
ʺUnterarraysʺ
herauszufinden, wendet man High einfach auf sie an:
High(my2DIntArray[0]);
liefert 0 zurück (weil es ja nur ein Element enthält) und
High(my2DIntArray[3]);
liefert 6 zurück. ʺLengthʺ würde 1 bzw. 7 zurückliefern
Ich verstehe nämlich nicht, wie man darauf gekommen ist, wieviele Zeilen
und Elemente das Array hat und wie man darauf kommt, wieviel
zurückgeliefert wurde. Ich wäre dankbar, wenn ihr mir helfen könntet.
MfG,
Farhan
Bergmann89 - Fr 01.08.08 02:51
Wie du schon geagt hast liefert High den größten Wert im Bereich des Arrays zurück.
Und Length gibt Anzahl der Elemente eines Arrays zurück.
Wenn du jetzt Length oder High auf ein Element des Arrays anwendest, dann bekommst du das Ergebniss, für den Integer, der im Array gespeichert is. Und da kann ja nur Mist raus kommen, weil ein Integer hat ja keine Länge, oder einen größtmöglichen Wert.
Hilft dir das, oder meinst du was anderes?
MfG Bergmann.
Tilman - Fr 01.08.08 03:20
Wieviele Zeilen und Spalten dein Array hat kannst du mit SetLength festlegen, z.B. setLength(my2DIntArray,50,50); um ein Array mit 50x50 Integern zu erhalten. high(my2DIntArray[0]); müsste dann - genauso wie high(my2DIntArray[3]); oder auch jeder andere Wert zwischen 0 und 49 - als höchsten Wert 49 zurückgeben.
Wenn du wirklich verschiedene Werte zurückbekommst, dann hast du möglicherweise setLength auf die einzelnen Zeilen angewendet, was vermutlich nicht von dir beabsichtigt ist.
Farhan - Sa 02.08.08 18:28
@Martok: Sorry, ich habe es durchgelesen bis zu diesem Absatz, den du meintest und habe es auch verstanden, aber ich verstehe leider immernoch nicht wie man da auf diese Ergebnise kommt. Kannst du mir es bitte vielleicht ausführlich erklären ? Oder andere? :)
Haben vielleicht diese Beispiele, die ich vorhin aufgezählt habe, mit diesem Code zu tun, den du hervorgehoben hast. Sind sie auf den bezogen oder sind das unabhängige Beispiele?
PS: Ja, sie sind aus diesem Delphi-Kurs. ;)
Bergmann89 - So 03.08.08 02:14
HI,
der Code den Martok geposted hat legt die Länge der Arrays fest. Und wenn du nun die Länge des Arrays mit "Length" abrufst, dann kommt das raus, was du vorher mit SetLength festgelegt hast: also 1, 5 und 7!
Mfg Bergmann.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!