Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Länge eines Array of array ermitteln (https://www.delphipraxis.net/144265-laenge-eines-array-array-ermitteln.html)

Ykcim 3. Dez 2009 17:30


Länge eines Array of array ermitteln
 
Hallo Zusammen,

vielleicht stelle ich hier jetzt eine doofe Frage, aber ich habe nichts passendes gefunden.

Ich habe eine Repeat oder auch (wahlweise) eine While Schleife, in der ein Counter hochgezählt wird.
Da es in den Schleifen um die Überprüfung und Verarbeitung von Datensätzen aus einem Array geht, muss ich ja einen Schutz einbauen, damit ich nicht über die Länge des Arrays hinauslaufe.

bei einer For-Schleife ist das angenehm über Length(Array) zu lösen. Die kommt hier aber nicht in Frage.

Leider funktioniert es nicht, wenn ich Length(Array) mit einem Integer vergleichen möchte - wie zum Beispiel

repeat
xxx
xxx
xxx
until k=Length(Array)

Ich könnte jetzt im Vorfeld einen separaten Counter mit einer For-Schleife auf den Wert der Länge des Arrays bringen, was natürlich extrem unschön ist.

Habt Ihr eine Idee, wie ich die Länge eines Arrays mit einem Integer-Wert vergleichen kann?

Vielen Dank im Voraus

himitsu 3. Dez 2009 17:36

Re: Länge eines Array of array ermitteln
 
"funktioniert nicht" ist keine Fehlerbeschreibung!

Denn es funktioniert und man kann Length mit einem Integer vergleichen, denn Length liefert selber einen Integer zurück.

Was geht nicht, also wass passiert und was willst du stattdessen erreichen?

PS: um die Länge eines "Subarrays" zu erhalten, solltest du dieses auch angeben

Length(arr) = Länge der ersten Ebene
Length(arr[3]) ? Länge des Subarrays von Index 3

Medium 3. Dez 2009 17:39

Re: Länge eines Array of array ermitteln
 
Zitat:

Zitat von Ykcim
Leider funktioniert es nicht, wenn ich Length(Array) mit einem Integer vergleichen möchte

Ich will NIE NIE NIE irgendwo im Support arbeiten müssen wenn solche "Fehlerbeschreibungen" - und in der Häufigkeit wie hier - die Norm sind. Ich würde nur noch tötend durch die Gegen Amoken :evil:

Das, und alles andere hat himi schon gesagt, aber der musste einfach nochmal raus *hutrandkau*

Ykcim 3. Dez 2009 17:46

Re: Länge eines Array of array ermitteln
 
Hallo himitsu,

ja, die Fehlerbeschreibung fehlt! SORRY!!!

Wenn ich einen Haltepunkt einfüge, kann ich mir nicht den Wert von Length(Arry[0]) anzeigen lassen.

Der Wert beträgt aber z.B. 100 Datensätze (Ich würde mir also wünschen, dass ich den Wert "100" ausgewiesen bekomme)

Warum?
Und wenn ich einen Counter habe, der schön hochgezählt wird, dann hat er irgendwann (wenn nicht vorher eine IF-Anweisung oder ein anderes Kriterium greift) den Wert "100" erreicht und die Schleife soll verlassen werden (statt einen Fehler zu erzeugen, weil in der If-Anweisung ein Wert, wie z.B. Array[0,Counter], nicht mehr vorhanden ist.

Ich hoffe, dass das verständlich ist.

Vielen Dank
Ykcim

P.S.: Danke für die schnelle Antwort zuvor!

Micha88 3. Dez 2009 17:51

Re: Länge eines Array of array ermitteln
 
Delphi-Quellcode:
{...}
until k=Length(Array);
wird/ist "k" gesetzt?

lass dir alternativ mal nach jedem reapeat in einem memo den status ausgeben.

d.h.
Delphi-Quellcode:
i := 0;repeat
inc(i);
Memo1.Lines.Add(IntToStr(k) + ' / ' + IntToStr(Length(Array[i])));
until k=Length(Array);

himitsu 3. Dez 2009 17:52

Re: Länge eines Array of array ermitteln
 
Length ist 'ne Funktion und da funktioniert sowas halt nicht (immer).

trage Length(Array) in die "Liste der überwachten Ausdrücke" ein
und aktiviere dafür das "Funktionsaufrufe gestatten"

Ykcim 3. Dez 2009 17:58

Re: Länge eines Array of array ermitteln
 
aktiviere dafür das "Funktionsaufrufe gestatten"

Wo und wie mache ich das?

himitsu 3. Dez 2009 18:02

Re: Länge eines Array of array ermitteln
 
indem du den überwachten ausdruck bearbeitest?
(Strg+E oder über's Kontextmenü oder den Ausdruck doppelklicken)

Ykcim 3. Dez 2009 18:05

Re: Länge eines Array of array ermitteln
 
Das wusste ich nicht - DANKE!

AAber wie würdet Ihr denn mein Problem lösen? Ich bin ja sicher nicht der einzige, der mit Hilfe einer Repeat oder while Schleife versucht, ein Array zu be- verarbeiten...

Danke
Ykcim

DeddyH 3. Dez 2009 18:21

Re: Länge eines Array of array ermitteln
 
Zitat:

Zitat von Medium
Zitat:

Zitat von Ykcim
Leider funktioniert es nicht, wenn ich Length(Array) mit einem Integer vergleichen möchte

Ich will NIE NIE NIE irgendwo im Support arbeiten müssen wenn solche "Fehlerbeschreibungen" - und in der Häufigkeit wie hier - die Norm sind. Ich würde nur noch tötend durch die Gegen Amoken :evil:

Das, und alles andere hat himi schon gesagt, aber der musste einfach nochmal raus *hutrandkau*

Solche Beschreibungen sind die Norm, glaub mir. Auch immer wieder gerne genommen ist der Satz "Ich hab nichts gemacht". Über sowas könnte ich Bücher schreiben, aber das erspar ich Euch und mir lieber.


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