Bienvenidos a Iseries Venezuela

Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.

The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.

Sunday, September 9, 2012

Uso de Arreglos (Arrays) o Estructuras Dimensionales.




Un tema viejo que vale la pena repasar.

He encontrado cuatro maneras básicas de utilizar arreglos en lo programas.

1.- Aquellos arreglos que son cargados a tiempo de compilación.
Esta modalidad se utilizaba en un principio para almacenar los dias de cada mes del año y validar de esta manera, las fechas que el usuario cargaba interactivamente. Luego que aparecieron funciones de validación de fecha como  TEST(DE), en la nuevas aplicaciones ya no se requiere de este uso. También se aplica para almacenar el nombre de los días de la semana,  el nombre de los meses del año, mensajes de error, títulos de los reportes y pantallas, comentarios y otros elementos fijos o de muy poca variación.
El inconveniente que tiene esta opción es la recompilación del programa cuando hay un cambio de los valores de las tablas internas. Sin embargo cuando se supone que los dias de la semana, los meses del año y los colores del arco iris van a  ser siempre iguales es una buena opción.

2.-Los arreglos que son cargados a tiempo de ejecución, también llamados “arreglos dinámicos”. Esta modalidad es particularmente útil para cargar tablas de data que tienen poca información y que son leídas muchas veces en el programa. Por ejemplo, si tienes un archivo de data que contiene las ciudades de un estado y el programa cuando tiene un lazo principal debe buscar una y otra vez la descripción de la ciudad entonces, podría cargarse este archivo en un arreglo del programa y evitarse los frecuente accesos a disco que enlentencen el tiempo de respuesta del programa. Con un lookup, puedes buscar en un par de  arreglos el código y el respectivo nombre de la ciudad que estas leyendo.

En cuanto a su definición tenemos arreglos numéricos, alfabéticos y multidimensionales. Podemos tener arreglos en los cuales cada elemento es una estructura de datos que a su vez contiene otros arreglos, números o textos. Esto se logra con el uso de la palabra clave Occur.

En estos artículos tienes información mas detallada de su uso:



3.-Redefinir estructuras de datos y campos de archivos en la hoja (D) a través de un arreglo para acceder a la información en forma indexada y simplificar la programación, evitando el uso de nombre de campos separados.

Remitirse al siguiente artículo para mas detalles:



4.- Para simular subfiles en pantalla.
En algunas instalaciones donde el uso del subfiles puede ser complicado por diversas razones, eso lo he visto particularmente en aplicaciones de conciliación bancaria donde el cruce automático de información entre el banco y la empresa deja “movimientos colgados” sin su pareja y el manejo del subfiles puede resultar engorroso por habilitar o deshabilitar campos o medias líneas del subfiles. La redefinición de campos de pantalla a través de arreglos ha simplificado el despliegue de información en pantalla en varias oportunidades.

Las operaciones que podemos hacer sobre los arreglos son:
Xfoot, (suma los elementos de un arreglo)
 lookup,  y todas sus variaciones para buscar un valor específico.
movea, (mueve un valor a todos los elementos de un arreglo)
Sorta (ordena ascendentemente los elementos de un arreglo)
%elem() Devuelve el numero de elementos de un arreglo.


Cabe destacar que hay múltiples algoritmos de ordenamiento y búsqueda que pueden aplicarse sobre un arreglo. Estos procesos no retardan prácticamente nada los tiempos de respuestas ya que la información está en memoria y no es necesario acceder al disco una vez que se ha cargado el arreglo una primera vez.



Si te pareció interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.


Autor: Ing. Liliana Suárez

No comments: