Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

For EACH

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
Marcel
Rookie
Rookie
Beiträge: 14
Registriert: Mi, 07. Okt 2009 7:46

For EACH

Beitrag von Marcel » Mo, 13. Aug 2012 11:29

Hi,

ich benutze in anderen Sprachen sehr oft die FOR EACH schleife,
ich konnte leider keine in xBase++ finden und habe versucht sie mir nachzubauen.
da mir aber die entsprechenden Methoden von meinem Objekt hier fehlen weiß ich nicht mehr weiter:

Die Funktionen setcurrent / next record sind die falschen,da diese nach record nummern gehen, aber mehr habe ich nicht:

Code: Alles auswählen

 
FOR x := 1 TO oWerte:Count  
   
   oWert:setcurrent(x)  //selektiert Datensatz nummer X

   AAdd(strMaximum,oWert:maximum)
   AAdd(strMinimum,oWert:minimum)
   
oWerte:NextRecord()	 
		
Next



Und hier mein original .Net code

Code: Alles auswählen

 
For Each oWert In oWerte

strMinimum.Add(oWert.minimum)
strMaximum.Add(oWert.maximum)
                  
Next
Gibt es hier irgendein euqivalent oder workaround in xBAse++ ?

Vielen Dank im Voraus

Liebe grüße

Marcel

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6790
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: For EACH

Beitrag von Tom » Mo, 13. Aug 2012 11:47

"oWerte" in "oWert" wäre in Xbase dann ein Array also Objektinstanz. Und dann würde man schlicht so verfahren:

Code: Alles auswählen

FOR i := 1 to Len(oWert:oWerte)
 ..
NEXT
Ins Blaue:

Code: Alles auswählen

CLASS oWert
EXPORTED oWerte

INLINE METHOD Init()
::oWerte := {}
...
ENDCLASS

oMyWert := oWert():New()
aAdd(oWert:oWerte,nErsterWert)
aAdd(oWert:oWerte,nZweiterWert)
usw.
Herzlich,
Tom

Marcel
Rookie
Rookie
Beiträge: 14
Registriert: Mi, 07. Okt 2009 7:46

Re: For EACH

Beitrag von Marcel » Di, 14. Aug 2012 8:40

Danke, werd damit mal ein bischen rumprobieren, und wenn ich 's geschafft hab natürlich die Lösung posten, hatte in der Suche schon eine ähnliche Frage ohne Lösung gefunden.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13753
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: For EACH

Beitrag von brandelh » Di, 14. Aug 2012 8:43

AEval( aArrayMitObjekten, {| oEinObjektAusDemArray| ... mach was damit } )

sollte sich so ähnlich verhalten wie ich FOR EACH verstehe, allerdings kann ein Codeblock schnell überfrachtet und unübersichtlich werden (dann besser im codeblock eine Funktion aufrufen) ;-)
Gruß
Hubert

Antworten