[EMAIL PROTECTED] escribió:

La solución era el DOU. Mi problema(no se si os paso a los que habeis cambiado al Free) es que como por ejemplo en la consulta que hice esta mañana,que al quitar indicadores hay que cambiar un poco la estuctura y la logica del programa,
Antes era algo así(esto no es free, es ILE normal):
    KCLDTO        SETLL     FCLDTOR                                  
                  Dow       Not *in69                                
    Kcldto        READe     FCLDTOR                                69
                                    If        *in69
                   Leave          
                   Endif
            .        
..            Enddo                  
i ahora seria así:
     KCLDTO        SETLL     FCLDTOR                      
                   Dou       %Eof(Fcldto)                
     Kcldto        READe     FCLDTOR                      
                   If        %Eof(Fcldto)                
                   Leave                                  
                   Endif      
        .
        .
            Enddo  
Y a veces me encabezono en hacerlo con la lógica antigua .                    

                                                 
y a veces nos pilla encabezonados en que la lógica es la misma.


Fernando Pérez <[EMAIL PROTECTED]>
Enviado por: [EMAIL PROTECTED]

18/11/04 16:59

Por favor, responda a
[EMAIL PROTECTED]

Para
[EMAIL PROTECTED]
cc

Asunto
Re: [TV041119] RPG sin indicadores ¿sigue siendo RPG?  (era %Eof)







[EMAIL PROTECTED] escribió:

Hola Juanra. Como parte implicada te contesto lo que puedo porque despues de esta prueba no veo claro lo del %Eof:

Pronto vamos a cambiar de versión de S.O. y podremos programar con el Free y tengo entendido que la tendencia es que si no se suprimen,al menos se restringe el uso de indicadores(si alguien está más puesto que yo en el tema del Free,lo cual no es dificil y me quiere corregir,bienvenido sea). O sea, que estoy haciendo un programa de los de siempre, que en resumidas cuentas es un bucle(un poco especial eso sí) dentro de otro,he visto que cuando accedo por segunda vez al segundo bucle,%Eof está activo.

He supuesto que si IBM fomenta la desaparicion de indicadores tendria estas cosas previstas,y me he preguntado cómo se haria esto sin *inxx y sólo con %Eof(fichero). La verdad,es que el bucle de dentro es un poco especial,pero se tienen que contemplar todas las posibilidades. En un programa 'normal',antes del Setll habria apagado el indicador  y listos. A ver los que programen en free cómo tratan el tema de indicadores.




Bueno, pues la respuesta a lo del bucle ya te la han dado los compañeros: lees antes de entrar en el bucle o haces DOU en lugar de DOW.

Más que para repetir la solución contesto para reiterar que pienso que el cambio merece la pena, no añade complejidad alguna y ofrece un código mucho más claro.



--
Saludos.


Fernando Pérez  


Cerámica Saloni. Dpto. Sistemas

Pues yo tambíen utilizo (y me gusta más) la opción de Gerardo, que pasado a tu caso sería :

     KCLDTO        SETLL     FCLDTOR                      
     Kcldto        READe     FCLDTOR                     
                   Dow       %Eof(Fcldto)                
     Kcldto        READe     FCLDTOR                      
        .
        .
     Kcldto        READe     FCLDTOR                     
                   Enddo 


Ya puestos, por si no has llegado a mirar lo de las claves, en FREE ya no son necesarios los KLIST:

( supongamos que los campos de Kcldto son clave1 y clave2)

readE (clave1: clave2) FCLDTOR ;                  
setLL (clave1: clave2) FCLDTOR ;                  

¡ Se acabó el ir al principio del programa a ver los campos por los que se busca !

--
Saludos.

Fernando Pérez 

Cerámica Saloni. Dpto. Sistemas

begin:vcard
fn;quoted-printable:Fernando P=C3=A9rez
n;quoted-printable:P=C3=A9rez;Fernando
org:;Sistemas
email;internet:[EMAIL PROTECTED]
tel;work:Ext. 627
version:2.1
end:vcard

Responder a