AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Variable in for to do Schleife über I ansprechend

Ein Thema von Dr. Jack · begonnen am 1. Mai 2019 · letzter Beitrag vom 2. Mai 2019
Antwort Antwort
Seite 1 von 2  1 2   
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

Variable in for to do Schleife über I ansprechend

  Alt 1. Mai 2019, 10:19
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Variable in for to do Schleife über I ansprechend

  Alt 1. Mai 2019, 10:21
Am Besten verwendet man gleich einen Array.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Variable in for to do Schleife über I ansprechend

  Alt 1. Mai 2019, 11:04
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
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.449 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Variable in for to do Schleife über I ansprechend

  Alt 1. Mai 2019, 11:07
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?
Das geht schlichtweg so nicht. Du musst die Strings in einem Array speichern:

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;
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.734 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Variable in for to do Schleife über I ansprechend

  Alt 1. Mai 2019, 13:02
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;
U. U. sogar
Delphi-Quellcode:
for i := 1 to 2 do
begin
  VKArray[i].MachWasMit;
end;
Uli Gerhardt
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.377 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Variable in for to do Schleife über I ansprechend

  Alt 1. Mai 2019, 14:32
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.

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
Delphi-Quellcode:
Vk_name1, vk_preis1,
Vk_name2, vk_preis2:String

For I:=1 to 3 do begin

Machwas := vk_name(I)
dann

Delphi-Quellcode:
vk_name: array[1..3]: String;
vk_preis: array[1..3]: String;

For I:=1 to 3 do begin
Machwas := vk_name[I];
end;
Klar, hat das noch ein riesiges Verbesserungspotential. Aber so hat Dr. Jack ein Erfolgserlebnis, weiterhin Spass an Delphi und lernt dann gerne weiter.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#7

AW: Variable in for to do Schleife über I ansprechend

  Alt 1. Mai 2019, 14:41
Man kann es auch ganz pragmatisch machen und eine Funktion deklarieren, wobei der restliche Code unverändert bleibt:

Delphi-Quellcode:
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;
Das wäre z.B. auch die bevorzugte Herangehensweise, wenn die Variablendeklaration nicht verändert werden kann.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Variable in for to do Schleife über I ansprechend

  Alt 1. Mai 2019, 14:48
Hallo,
ähem,
i von 1 bis 3 und es gibt für 3 keine entsprechende Variable???

Die Richtung zum Array finde ich schon richtig. .
Heiko
  Mit Zitat antworten Zitat
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#9

AW: Variable in for to do Schleife über I ansprechend

  Alt 1. Mai 2019, 15:17
Hallo,
ähem,
i von 1 bis 3 und es gibt für 3 keine entsprechende Variable???

Die Richtung zum Array finde ich schon richtig. .
Es gibt ca 30 Variablen. Erster Durchlauf Artikel 1 mit seinen Parametern also Preis Lagerort etc ...das wird mit 3 Durchläufen anschließend in eine DB geschrieben
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Variable in for to do Schleife über I ansprechend

  Alt 2. Mai 2019, 00:28
Hallo,
dann kürze Deine Variablen und nimm ein Array.
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.
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