versión 11 (Modificado)
Usted crea un array con uno de los comandos de declaración de arrays descritos en este capítulo. Esta es la lista de comandos de declaración de arrays:
Comando | Crea o redimensiona un array de: |
Array INTEGER | Enteros 2-bytes |
Array LONGINT | Enteros 4-bytes (*) |
Array REAL | Reales |
Array TEXT | Textos (de 0 a 32 000 caracteres por elemento) (**) |
Array STRING | Alfanuméricos (de 0 a 255 caracteres por elemento) (**) |
Array DATE | Fechas |
Array BOOLEAN | Booleanos |
Array PICTURE | Imágenes |
Array POINTER | Punteros |
Cada comando de declaración de arrays puede crear o redimensionar arrays de una o dos dimensiones. Para mayor información sobre arrays de dos dimensiones, consulte la sección Arrays de dos dimensiones.
(*) Los arrays de tipo Entero largo le permiten manipular datos de tipo Hora. Para mostrar en un formulario de horas, aplique sobre el objeto de formulario asociado el formato de salida &/x, donde x representa el número de formato en la lista de formatos de horas (en orden de aparición). Por Ejemplo, &/4 mostrará el formato Hora Minuto.
(**) La diferencia entre los arrays de tipo texto y los arrays de tipo alfanumérico es la naturaleza de sus elementos. En ambos tipos de array, los elementos pueden tomar valores de texto (caracteres). Sin embargo:
En un array tipo texto, cada elemento es de longitud variable y guarda sus caracteres en partes diferentes de la memoria.
En un array tipo alfa, todos los elementos tienen la misma longitud fija (la longitud definida cuando se creó el array). Todos los elementos se almacenan uno tras otro en la misma parte de la memoria, sin importar su contenido.
Por esta diferencia estructural, los arrays tipo alfa son más rápidos que los arrays tipo texto. Sin embargo, observe que un elemento de un array tipo alfa no puede tener más de 255 caracteres.
La siguiente línea de código crea (declara) un array entero de 10 elementos:
ARRAY INTEGER(aiUnArray;10)
Luego, el siguiente código redimensiona el mismo array a 20 elementos:
ARRAY INTEGER(aiUnArray;20)
Finalmente, el siguiente código redimensiona el mismo array a 0 elementos:
ARRAY INTEGER(aiUnArray;0)Los elementos en un array se referencian utilizando llaves ({ }). Se utiliza un número dentro de las llaves para referirse a un elemento en particular; este número se llama número de elemento. Las siguientes líneas colocan cinco nombres en un array llamado atNombres y luego los muestra en ventanas de alerta:
ARRAY TEXT (atNombres;5) atNombres{1} := "Ricardo" atNombres{2} := "Sara" atNombres{3} := "Samuel" atNombres{4} := "Javier" atNombres{5} := "Juan" For ($vlElem;1;5) ALERT ("El elemento #"+String($vlElem)+" es igual a: "+atNombres{$vlElem}) End for
Observe la sintaxis atNombres{$vlElem}. En lugar de especificar un número literal tal como atNombres{3}, puede utilizar una variable numérica para indicar que elemento de array al que usted está direccionando.
Utilizando las iteraciones de las estructuras de bucle (For...End for, Repeat...Until or While...End while), pedazos compactos de código pueden direccionar todos o parte de los elementos en un Array.
Arrays y otras áreas del lenguaje 4D
Hay otros comandos 4D que pueden crear y trabajar con arrays. En particular:
Para trabajar con arrays y selecciones de registros, utilice los comandos SELECTION RANGE TO ARRAY, SELECTION TO ARRAY, ARRAY TO SELECTION y DISTINCT VALUES.
Los objetos de tipo List box están basados en arrays; varios comandos del tema "List box" trabajan con arraYs, por ejemplo INSERT LISTBOX ROW.
Puede crear gráficos a partir de los valores almacenados en las tablas, subtablas y arrays. Para mayor información, consulte el comando GRAPH.
Aunque la versión 6 trae un juego completo de nuevos comandos para trabajar con listas jerárquicas, los comandos LIST TO ARRAY y ARRAY TO LIST (de la versión anterior) se conservan por razones de compatibilidad.
Muchos comandos pueden construir arrays en una llamada, por ejemplo: FONT LIST, WINDOW LIST, VOLUME LIST, FOLDER LIST, DOCUMENT LIST, GET SERIAL PORT MAPPING, SAX GET XML ELEMENT, etc.
Ver también
ARRAY BOOLEAN, ARRAY DATE, ARRAY INTEGER, ARRAY LONGINT, ARRAY PICTURE, ARRAY POINTER, ARRAY REAL, ARRAY STRING, ARRAY TEXT, Arrays, Arrays de dos dimensiones.