Seite 1 von 1

For EACH

Verfasst: Mo, 13. Aug 2012 11:29
von Marcel
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

Re: For EACH

Verfasst: Mo, 13. Aug 2012 11:47
von Tom
"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.

Re: For EACH

Verfasst: Di, 14. Aug 2012 8:40
von Marcel
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.

Re: For EACH

Verfasst: Di, 14. Aug 2012 8:43
von brandelh
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) ;-)