Juan Ramón Garcia escribió:
Prólogo: Hoy no es Viernes, es Jueves por la tarde (al menos en España)
pero como últimamente el Foro tarda en replicar (al menos a mi) varias
horas, algun@ veréis este mensaje mañana.
-----------------------------------------------------
Hola a [EMAIL PROTECTED]:

A ver, creo que, enfrascado con asuntos "legales" (LOPD y esas hierbas), me
he perdido algo importante y gracias a este tema he levantado mis ojos de
tanto BOE y RD's y mi espíritu RPGero ha sufrido un estremecimiento

  
La pregunta es: cómo 'apago' el %Eof(fichero)?
    
Utiliza un indicador en el setll y lo apagas antes del nuevo setll
      
Hombre,con un indicador normal no hay problema, pero se trata de ir
quitando indicadores para cuando empecemos con Free RPG.
        

Pues no lo entiendo, debe ser que soy demasiado mayor y mis neuronas se han
quedado obsoletas, una de las mayores ventajas del RPG, frente a otros
lenguajes, es precisamente la potencia que le dota el uso de indicadores,
una cosa es estructurar el programa y tratar los indicadores como variables
(*INxx) y otra "ir quitando indicadores".
¿Que diferencia hay entre %Eof(fichero) y *INxx = *ON?
Al fin y al cabo %Eof es un "indicador" que nos indica (valga la
redundancia) la circunstancia de que se ha terminado de leer el fichero,
¿cómo se justifica el no utilizar un "indicador normal" si además es más
fácil?.

Hasta ahora no le he dado demasiada importancia al Free RPG pero hoy me he
quedado seriamente preocupado, tal vez lo he entendido mal pero ¿van a
desaparecer los indicadores con el Free RPG?, no soy capaz de imaginar el
lenguaje RPG (sea de la versión que sea) sin indicadores, ¿que va a pasar
con el ciclo lógico?, y ¿los indicadores de control de ruptura?, ¿Lx es
sustituido por %CambiaValor(campo_de_control)?, ¿queremos matar moscas a
cañonazos?.

Un saludo.

Juanra
%OldRPGiSaurio


_____________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja, envía el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]

  
Juanra, me preocupas :))

¿De verdad no ves la diferencia entre usar 'if  %eof(fichero)' ( o %eof a secas, si tienes claro que el último acceso a sido a ese fichero) y usar 'if  *in50 = *off' (por cierto, esto también es RPG-FREE ;) )?
 
Cójete un programa con un bucle de más de una página. Sin ver el chain o el Read,  con el %eof sabes qué se está evaluando. Con el indicador, normalmente tendrás que buscar en el fuente la última sentencia posible ( y no siempre es trivial) que la ha dado valor antes de la comprobación . Y reza por que *in50 solo se utilice para comprobar las lecturas a un solo fichero, porque si se gasta para más cosas, date por violado.

Personalmente, creo que los indicadores no dan en absoluto potencia al lenguaje. En todas las recomendaciones de programación se dice que las variables han de tener nombres descriptivos y utilizarse para un fin en concreto. Es justo lo contrario de un indicador de uso general. Y no vale lo de que es más fácil utilizar un indicador: utilizar en su lugar la función integrada no supone ninguna complejidad adicional (al menos, en los casos que ahora me vienen a la memoria).

En cuanto al ciclo lógico: aquí la cosa es algo diferente, ya que los indicadores tienen bien definido su uso y significado. De todas maneras, aunque en efecto permite escribir menos código, también es cierto que ese código suele ser bastante menos claro ( al menos para mi) que el control manual de rupturas, y al fin y al cabo, lo único que te evita el ciclo lógico es la comprobación del cambio en los campos de clave, lo cual no está mal, pero tampoco es de lo más costoso en programación.

Personalmente uso los indicadores solo para trabajar con pantallas y listados. Y en esos casos, los renombro con el truco de superponer una DS con *in:

D in@             S               *   inz(%addr(*in))                          
D ind             DS                  based(in@) qualified                     
D F3Salir                 3      3N                                            
D F4Consultar             4      4N                                            
D F24MasTeclas           24     24N                                            
 *
D sfldspctl              30     30N                                            
D sfldsp                 31     31N                                            
D sfldlt                 32     32N                                            

Prefiero leer en el programa "ind.sfldspctl = *off" que "*in50 = *off".

Es cierto que en programación muchos temas son cuestión de gustos, pero, sinceramente, creo que el uso de los indicadores para cualquier aplicación que se pueda sustituir por el uso de variables o funciones integradas ( dejando como discutible el tema del ciclo, pero reiterando que tampoco me gusta) se puede catalogar una práctica incorrecta.

Venga, anímate y da el salto a rpg-free. No lo mires como una amenaza. Posiblemente, junto con el uso de procedimientos y funciones, es la más importante (y provechosa para los programadores) evolución que ha tenido el lenguaje.

--
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