AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Foreach: Wie heisst "I"

Ein Thema von WoGe · begonnen am 2. Mai 2010 · letzter Beitrag vom 2. Mai 2010
Antwort Antwort
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#1

Foreach: Wie heisst "I"

  Alt 2. Mai 2010, 10:20
Hallo

da Delphi ja jetzt (endlich) die ForEach - Schleife kennt, gibt es eine Möglichkeit auf die Iterationsvariable zuzugreifen?

so in etwa:

Delphi-Quellcode:
for c in mystring do
begin
  if odd(i) then...
end;
Grüsse
wo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.532 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Foreach: Wie heisst "I"

  Alt 2. Mai 2010, 10:27
Ich hab das Konstrukt zwar noch nie benutzt, aber müsste das nicht gehen?
Delphi-Quellcode:
for c in mystring do
begin
  if odd(Ord(c)) then...
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Foreach: Wie heisst "I"

  Alt 2. Mai 2010, 10:34
Zitat von WoGe:
da Delphi ja jetzt (endlich) die ForEach - Schleife kennt, gibt es eine Möglichkeit auf die Iterationsvariable zuzugreifen?
Nein, ich denke du musst manuell zählen, da ForEach intern nur eine Iteratorklasse verwendet, die nur eine Funktion "Next" und "Current" kennt.

Siehe: http://de.wikipedia.org/wiki/Iterato...wurfsmuster%29
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Foreach: Wie heisst "I"

  Alt 2. Mai 2010, 10:35
das sollte definitiv nicht funktionieren. Denn c enthält/ist das Element und mit odd castest du das Element lediglich zu einem Zahlentyp. Enthält der String also ein Leerzeichen welches den Wert 32 hat würdest du dann mit deinem Konstruct 32 bekommen aber keinesfalls den Schleifenzähler.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.532 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Foreach: Wie heisst "I"

  Alt 2. Mai 2010, 10:36
Jetzt, wo Ihr es sagt: er will ja den Index und nicht den aktuellen Wert an dessen Position. Man sollte schon richtig lesen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Foreach: Wie heisst "I"

  Alt 2. Mai 2010, 10:41
Schade..

aber trotzdem vielen Dank

Gruss
wo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
42.982 Beiträge
 
Delphi 12 Athens
 
#7

Re: Foreach: Wie heisst "I"

  Alt 2. Mai 2010, 11:05
Im Prinzip gibt es hier nicht den Index, wozu auch, dafür ist diese Schleife auch nicht entwickelt wurden.

Wenn du einen Index willst, dann mußt du eben eine normale For-To-Schleife verwenden.
Und in Bezug auf einen verwendeten Enumerator muß es nichtmal etwas wie einen Index geben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#8

Re: Foreach: Wie heisst "I"

  Alt 2. Mai 2010, 13:48
Zitat von himitsu:
...
Und in Bezug auf einen verwendeten Enumerator muß es nichtmal etwas wie einen Index geben.
Aber reproduzierbar wird die Folge ja schon sein, zumindest solang nichts dran geändert wird. Er könnte ja in jedem Fall eine Variable i in der Schleife mit hochzählen, es gibt bloss keine Garantie, dass c[i] immer das gleiche meint. Es bleibt also die Frage, wozu die Zahl überhaupt gut sein soll. Das Abzählen etwa von ungeraden Zahlen in einer Menge beliebiger Zahlen ist aber kein Problem.

Gruss Reinhard
  Mit Zitat antworten Zitat
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 06:41 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