Juan Ramón Garcia escribió:Juanra, me preocupas :))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 ¿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. --
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
