FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour for each
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM

for each

Posted: Sun Jun 28, 2009 12:08 AM
Hola a todos quisiera saber si esto se puede hacer con for each, o es sólo para array unidimensionales:


Code (fw): Select all Collapse
For z = 1 to len(array)
        ntotrec += aRe3[z,3]
        ntotpago += div_zero(aRe3[z,3],aRe3[z,5])
        ntotdif +=  aRe3[z,6]
next

lo hice así y no funciona da error 

FOR EACH  z in aRe3
        ntotrec += aRe3[z,3]
        ntotpago += div_zero(aRe3[z,3],aRe3[z,5])
        ntotdif +=  aRe3[z,6]
next


Error description: Error BASE/1068 Error de argumento: acceso al array
Args:
[ 1] = A { ... }
[ 2] = A { ... }

Luis
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM

Re: for each

Posted: Sun Jun 28, 2009 06:44 AM
Hola Surgon

esta es la sistaxys
Code (fw): Select all Collapse
FOR EACH <element> IN <array>|<object>|<string>
   <statements>
   [LOOP]
   <statements>
   [EXIT]
NEXT


<element>
Es la variable que tomará los valores en cada iteracción
En tu caso, cada que vez que avance una iteraccion EACH, z, recibirá todo el elemento de aReg3, convirtiendose z en un array unidimensional de cada "fila" de aReg3

deberias hacerlo asi...
Code (fw): Select all Collapse
FOR EACH  z IN aRe3
        ntotrec += z[ 3 ]
        ntotpago += Div_Zero( z[ 3 ], z[ 5 ] )
        ntotdif +=  z[ 6 ]
next
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM

Re: for each

Posted: Sun Jun 28, 2009 10:47 PM

Daniel gracias por la explicación, ahora lo entiendo

Luis

Continue the discussion