![]() |
Variable in for to do Schleife über I ansprechend
Hi zusammen,
ich habe folgende Variablen deklariert: Vk_name1, vk_preis1, Vk_name2, vk_preis2:String Ich muss in einer for to do schleife die Variablen über I ansprechen. Zum Beispiel schemenhaft: For I:=1 to 3 do begin Machwas := vk_name(I) .... End; Wie kann ich also die Variable in der Schleife mit dem Schleifenzähler ansprechen? |
AW: Variable in for to do Schleife über I ansprechend
Am Besten verwendet man gleich einen Array.
|
AW: Variable in for to do Schleife über I ansprechend
Wenn das so etwas wie eine kleine Kasse sein soll, würde sich für die Artikel eher eine generische Liste bzw. ein Dictionary mit entsprechenden Klassen anbieten.
Das hat den Vorteil, dass man alle Daten zu einem Artikel zusammen in einer Klasse hat. Ansonsten verteilt sich das über mehrere Arrays bzw. Variablen, was das nicht gerade übersichtlicher macht |
AW: Variable in for to do Schleife über I ansprechend
Zitat:
Delphi-Quellcode:
type
TVKNameUndPreis: record Name: string; Preis: string; // wirklich string? end; var VKArray: array[1..2] of TVKNameUndPreis; // [...] for i:=1 to 2 do begin MachWasMit(VKArray[i].Name, VKArray[i].Preis); end; |
AW: Variable in for to do Schleife über I ansprechend
Zitat:
Delphi-Quellcode:
for i := 1 to 2 do
begin VKArray[i].MachWasMit; end; |
AW: Variable in for to do Schleife über I ansprechend
Nach dem die Antworten hier teilweise nach dem Muster "wer findet noch was abgefahreneres um einen Anfänger zu verwirren?" hier noch mein Vorschlag:
Nachdem die Variablen im Speicher ja schön hintereinander liegen - er könnte sich die Adresse von Vk_name1 besorgen, in einen Pointer casten und dann je nach i sich die Adresse ausrechnen und zurück casten. Das hat noch den riesen Vorteil, dass er seine Deklarationnicht anpassen muss. :wink: Im Ernst: offensichtlich ist Dr. Jack ein Anfänger der gerade mal weiß was eine Schleife ist aber noch nichts von Arrays gehört hat. Da würde ich jetzt nicht schon Klassen, Records und noch höheres vorschlagen sondern nur array alleine Also statt Zitat:
Zitat:
|
AW: Variable in for to do Schleife über I ansprechend
Man kann es auch ganz pragmatisch machen und eine Funktion deklarieren, wobei der restliche Code unverändert bleibt:
Delphi-Quellcode:
Das wäre z.B. auch die bevorzugte Herangehensweise, wenn die Variablendeklaration nicht verändert werden kann.
function vk_name(Index: Integer): string;
begin case Index of 1: result := vk_name1; 2: result := vk_name2; else raise ERangeError.Create('invalid Index'); end; end; |
AW: Variable in for to do Schleife über I ansprechend
Hallo,
ähem, i von 1 bis 3 und es gibt für 3 keine entsprechende Variable??? Die Richtung zum Array finde ich schon richtig. . |
AW: Variable in for to do Schleife über I ansprechend
Zitat:
|
AW: Variable in for to do Schleife über I ansprechend
Hallo,
dann kürze Deine Variablen und nimm ein Array. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz