![]() |
For Schleife über Set bringt Fehler!!
Hallo,
bei Folgendem Code kommt folgende Fehlermeldung, aber eigentlich sollte es doch möglich sein eine For schleife über ein Set laufen zu lassen.
Delphi-Quellcode:
Fehlermeldung für die zeile mit "for ASetIndex in ATIMSet do" ist
procedure bla;
type TTIMSet = 'A'..'D'; var ASetIndex : TTIMSet; ATIMSet : Set of TTIMSet; begin for ASetIndex in ATIMSet do begin //mache was end; end; "FOR-Schleifenvariable muss eine einfache lokale Variable sein". Warum geht es nicht? Ich will durch ein Set mit Buchstaben A bis D laufen mehr nicht. Gruß |
Re: For Schleife über Set bringt Fehler!!
Das geht nicht. :mrgreen: Nimm ein Array.
|
Re: For Schleife über Set bringt Fehler!!
|
Re: For Schleife über Set bringt Fehler!!
Ne. :-D Die for-Schleife geht über das i und nicht über das SET. Kleiner, aber feiner Unterschied !
P.S.: lese mal den letzten Satz aus dem Wiki-Link. Das Bsp. ist übrigens keine Lotto-Ziehung, da gibts jede Zahl nur einmal. Der simuliert da eine "Ziehung mit zurücklegen". Das ist 11er/13er Wette |
Re: For Schleife über Set bringt Fehler!!
Zitat:
Delphi-Quellcode:
type TLottozahlen = 1..49; var Lottozahlen: set of TLottozahlen = []; // leere Menge z: TLottozahlen; for z in Lottozahlen do Writeln(z); EDIT!! Diesen Code hier kann ich ohne Fehler compilieren:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
type TLottozahlen = 1..49; var Lottozahlen: set of TLottozahlen; // leere Menge z: TLottozahlen; i: Integer; begin for i := 1 to 49 do // Ersteinmal Werte in das SET schreiben. begin Lottozahlen := Lottozahlen + [i]; end; for z in Lottozahlen do // Und jetzt über jeden Eintrag des Set laufen begin ListBox1.Items.Add(IntToStr(z)); end; end; |
Re: For Schleife über Set bringt Fehler!!
Ab Delphi 9 kann man das Wiki-Program übersetzen (als Konsolapplikation).
Gammatester |
Re: For Schleife über Set bringt Fehler!!
->Ich nutze Delphi7 ->ich kann das Wiki Programm nicht compilieren selber fehler
also für micht sieht das so aus als ob der in der For schleife einmal jedes Set Element durchgeht. Und genau das will ich nicht mit zahlen sondern buchstaben. ich bin wirklich der meinung das dies gehen sollte. eine Forschleife läuft über eine begrenzte menge, wenn ich einen typ TBla = 'a'..'d'; anlege ist das eine endliche menge und darüber sollte man eine schleife laufen lassen können. ->OK damit haben wir den Übeltäter, Delphi7 kann es nicht spätere schon |
Re: For Schleife über Set bringt Fehler!!
Zitat:
|
Re: For Schleife über Set bringt Fehler!!
Bei einem Enum würde es klappen bzw. einer Liste, aber nicht bei einer Menge (Set). Dort erst ab D2005, alles andere auch zuvor...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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 by Thomas Breitkreuz