Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Array (https://www.delphipraxis.net/118131-array.html)

Farhan 1. Aug 2008 00:06


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

Zacherl 1. Aug 2008 01:05

Re: Array
 
Ich verstehe deine Frage nicht wirklich. Angenommen du hast ein 2D Array:

Delphi-Quellcode:
var
  My2DArray = Array[1..10] of Array[0..2] of Byte;
Length() gibt dir immer die Anzahl der Elemente an, also z.b.:

Delphi-Quellcode:
Length(My2DArray)
// ergibt 10
Length(My2DArray[4])
// ergibt 3
Length(My2DArray[7])
// ergibt 3
high() bzw low() geben dir den höchsten bzw den niedrigsten zulässigen Index zurück, also z.b.:

Delphi-Quellcode:
high(My2DArray)
// ergibt 10
low(My2DArray)
// ergibt 1
high(My2DArray[4])
// ergibt 2
low(My2DArray[4])
// ergibt 0
high(My2DArray[7])
// ergibt 2
low(My2DArray[7])
// ergibt 0
Die Deklaration habe ich extra als "Array of Array" gemacht, damit du siehst, dass du mit jedem Element es ersten Array ein weiteres Array ansprichst. Aus selbigem Grund habe ich 4 und 7 als Beispielindex verwendet, um zu zeigen, dass jedes Unterelement des ersten Array jeweils ein konstant großes zweites Array enthält.

Gruß Zacherl

Farhan 2. Aug 2008 17:31

Re: Array
 
Wie kommst du den auf solche Ergebnisse? Könntest du mir bitte es ausführlich erklären?

Neutral General 2. Aug 2008 17:39

Re: Array
 
Zitat:

Zitat von Farhan
Wie kommst du den auf solche Ergebnisse? Könntest du mir bitte es ausführlich erklären?

Ist doch schon ausführlich. Er hat geschrieben was die Funktionen Length und High zurückgeben und dir ein ausführliches Beispiel aufgeschrieben.

Delphi-Quellcode:
Length(Array)
liefert dir die Anzahl der Array-Elemente.

Delphi-Quellcode:
High(Array)
Liefert dir den Index des letzten Array-Elements.

Delphi-Quellcode:
Low(Array)
liefert dir den Index des ersten Array-Elements

Mehr gibts da nicht zu erklären. Schau dir halt die Beispiele von FAlter an.

Gruß
Neutral General

Farhan 2. Aug 2008 18:03

Re: Array
 
Wie kommt er darauf was Lenght und High zurückgeben?

grenzgaenger 2. Aug 2008 18:11

Re: Array
 
Delphi-Referenz durchsuchenlength, Delphi-Referenz durchsuchenhigh, Delphi-Referenz durchsuchenlow

Farhan 2. Aug 2008 20:24

Re: Array
 
Zitat:

Zitat von grenzgaenger

Das sie existieren, weiß ich auch. Meine Frage war aber, wie kommen da die Ergebnisse mit den Lenght, High und Low zustande?

:)

mkinzler 2. Aug 2008 20:28

Re: Array
 
Aus der Speicherverwaltung der Runtime

Farhan 2. Aug 2008 21:23

Re: Array
 
Zitat:

Zitat von mkinzler
Aus der Speicherverwaltung der Runtime

Was ist das bitte? :gruebel:

mkinzler 2. Aug 2008 21:33

Re: Array
 
Die Laufzeitbibliothek, über welche der Speicher verwaltet wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 Uhr.
Seite 1 von 2  1 2      

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