AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Sintaxis WLanguage / Declaración de variables
  • Otros tipos de arrays
  • Procedimiento: Declarar un parámetro de tipo Array
  • Pasar un array como parámetro a un procedimiento
  • Funciones WLanguage y arrays
  • Array de arrays, arrays asociativos, colas, pilas y listas
  • Limitaciones: Elementos del array
  • Arrays en las clases
  • Agregar el contenido de una estructura a un array de estructuras sin utilizar una variable de la estructura
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Un array es un tipo estructurado que permite agrupar una serie de elementos del mismo tipo. Puede acceder a cada elemento del array por su índice.
Ejemplo
// Declares an array initialized with the names of days of the week
DayArray is array of strings = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
// Manipulates the array
DayArray[2] // Returns "Tuesday"
// Declares an array of integers
ValueArray is array of int
// Populates the array of integers by adding values
Add(ValueArray, 5)
Add(ValueArray, 10)
Add(ValueArray, 15)
// Iterates over the values of the array
FOR EACH x OF ValueArray
	// x is successively equal to 5, 10, 15
	...
END
// Declares an array of integers
ValueArray is array <growth=1> of int
// Expands the array to insert value 1: 10
ValueArray[1] = 10
// Expands the array to insert value 2: 20
ValueArray[2] = 20
// Expands the array to insert value 3: 30
ValueArray[3] = 30
// Iterates over the values of the array
FOR EACH x OF ValueArray
	// x is successively equal to 10, 20, 30
END
// Declares an array of integers
ValueArray is array <growth=N> of int
// Expands the array to insert value 1: 10
ValueArray[1] = 10
// Expands the array to insert value 5: 50
// The values 2, 3 and 4 are initialized to 0
ValueArray[5] = 50
// Iterates over the values of the array
FOR EACH x OF ValueArray
	// x is successively equal to 10, 0, 0, 0, 50
END
Universal Windows 10 AppiPhone/iPadIOS WidgetApple WatchMac Catalyst
// Declare an Array of arrays
arrMyArray is array of strings
nArrIndex is int

nArrIndex = Add(arrMyArray)
Add(arrMyArray[nArrIndex], "January")
Add(arrMyArray[nArrIndex], "300")
nArrIndex = Add(arrMyArray)
Add(arrMyArray[nArrIndex], "February")
Add(arrMyArray[nArrIndex], "600")

Trace(arrMyArray[1,1]) // Displays "January"
Trace(arrMyArray[1,2]) // Displays "300"
Sintaxis

Declarar un array unidimensional (sintaxis 1)


<Array name> is array [<growth>] [ [<Dimension 1>] ] <Type of array elements>
Ejemplo:
arrString is array <growth=N> [10] strings
arrInt is array [5] ints

Declarar un array unidimensional (sintaxis 2) Ocultar los detalles

<Array name> is array [<growth>] of [<Dimension>] <Type of array elements>
<Array name>:
Nombre de la variable de tipo Array a declarar.
<growth>:
Opción para expandir el array:
  • ningún valor (predeterminado) o "<growth=0>": el array no se expande automáticamente. Por ejemplo, si el array contiene 5 elementos y el programa accede al elemento 6 o al 100, se producirá un error de ejecución.
  • "<growth>" o "<growth=1>": el array se expande automáticamente 1 elemento. Por ejemplo, si el array contiene 5 elementos y el programa accede al elemento 6, el array se expande automáticamente para manipular el elemento 6. Si el programa accede al elemento 100, se producirá un error de ejecución.
  • "<growth=N>": el array se expande automáticamente en función del número de elementos necesarios. Por ejemplo, si el array contiene 5 elementos y el programa accede al elemento 6, el array se expande automáticamente 1 elemento para manipular el elemento 6; si el programa accede al elemento 100, el array se expande automáticamente para manipular el elemento 100. Los elementos intermedios se inicializan con el valor predeterminado del tipo de los elementos del array.
Observación: Para expandir un array con varias dimensiones, utilice la función Dimension.
<Dimension>:
Dimensión opcional del array. Este parámetro puede:
  • ser indeterminado o corresponder a '*' o '0': el array se inicializa vacío.
  • corresponder a un valor constante o a una variable de tipo Integer: el array se inicializa con el número especificado de elementos. Cada elemento se inicializa con el valor predeterminado de su tipo.
<Type of array elements>:
Tipo de los elementos del array. Consulte Los diferentes tipos de WLanguage.
Universal Windows 10 AppiPhone/iPadIOS WidgetApple WatchMac Catalyst Observación: Los elementos del array también pueden ser arrays, arrays fijos, arrays asociativos, colas, pilas o listas.

Declarar un array multidimensional (10 dimensiones como máximo) - Sintaxis 1


<Array name> is array of [ [<Dimension 1> [, <Dimension 2>]...[, <Dimension 10>]] ] <Type of array elements>
Ejemplo:
arrString is array [10,20] strings
arrInt is array [3,5,2] ints

Declarar un array multidimensional (10 dimensiones como máximo) - Sintaxis 2 Ocultar los detalles

<Array name> is array of [<Dimension 1> [by <Dimension 2>] ... [by <Dimension 10>]] <Type of array elements>
OR
<Array name> is array of [<Dimension 1> [, <Dimension 2>]... [, <Dimension 10>]] <Type of array elements>
<Array name>:
Nombre de la variable de tipo Array a declarar.
<Dimension 1>...<Dimension 10>:
Dimensión 1 a 10 del array. El valor de la dimensión puede corresponder a:
  • * o 0: la dimensión se inicializa en 0.
  • un valor constante o una variable de tipo Integer: la dimensión se inicializa con el número especificado de elementos. Cada elemento se inicializa con el valor predeterminado de su tipo.
<Type of array elements>:
Tipo de los elementos del array. Consulte Los diferentes tipos de WLanguage.
Universal Windows 10 AppiPhone/iPadIOS WidgetApple WatchMac Catalyst Observación: Los elementos del array también pueden ser arrays, arrays fijos, arrays asociativos, colas, pilas o listas.

Declarar un parámetro de tipo Array Ocultar los detalles

One-dimensional array:
<Parameter name> is array of [<Dimension>] <Type of array elements>

Two-dimensional array
<Parameter name> is array of <Dimension 1> by <Dimension 2> <Type of array elements>

N-dimensional array
<Parameter name> is array of [<Dimension 1> [by <Dimension 2>] ... [ by <Dimension N>]] <Type of array elements>
<Parameter name>:
Nombre del parámetro de tipo Array a declarar.
<Dimension n>:
El parámetro <Dimension> puede no especificarse, corresponder a * , 0 o a un valor constante.
<Type of array elements>:
Tipo de los elementos del array. Consulte Los diferentes tipos de WLanguage.
Observación: Los elementos del array también pueden ser arrays, arrays fijos, arrays asociativos, colas, pilas o listas.

Hacer referencia a un array Ocultar los detalles

Referencing an element in a one-dimensional array:
<Array name>[Index1]

Referencing an element in a two-dimensional array:
<Array name>[Index1, Index2]
OR
<Array name>[index1][index2]

Referencing an element in a n-dimensional array:
<Array name>[Index1,...,IndexN]
OR
<Array name>[Index1]...[IndexN]
<Array name>:
Nombre del array a manipular.
<Index1>:
Índice del elemento para la 1.ª dimensión.
<Index2>:
Índice del elemento para la 2.ª dimensión.
<IndexN>:
Índice del elemento para la N-ésima dimensión (N <= 10).
Observaciones

Otros tipos de arrays

La palabra clave Array permite definir un array. Existen otros tipos de arrays "avanzados":
  • Dynamic array: Array con asignación dinámica de memoria.
  • Fixed array: Array de tamaño fijo (recomendado para las API de Windows).
  • Associative array: Array utilizado para indexar elementos por cualquier tipo de valor.

Procedimiento: Declarar un parámetro de tipo Array

Puede pasar un array como parámetro a un procedimiento. Por ejemplo:
// Adds a customer to the array
PROCEDURE AddCustomer(arrCustomer is array of * CCustomer,
	sName is string,
	sInfo is string)
// Builds the new customer object
c is CCustomer(sName, sInfo)
// Adds the object to the array
Add(arrCustomer, c)

Observaciones:
  • El tipo de datos de los elementos del array pasado como parámetro debe ser igual al que se utilizó en la declaración.
  • El número de dimensiones del array pasado como parámetro debe ser igual al que se utilizó en la declaración.
  • El número de elementos de cada dimensión del array pasado como parámetro debe corresponder a la declaración:
    • si el número de elementos para la dimensión es *, no se realiza ninguna verificación.
    • si se especifica el número de elementos para la dimensión, el número de elementos debe ser el mismo.
  • No se realiza ninguna verificación en el momento de la compilación: las verificaciones se realizan en tiempo de ejecución.

Pasar un array como parámetro a un procedimiento

Puede pasar un array como parámetro a un procedimiento. Para ello, utilice la siguiente sintaxis:
<Procedure name>(<Array name>)

Por ejemplo:
SuppArray is array of 10 by 50 strings
// Call to the DisplayArray procedure
DisplayArray(SuppArray)

Funciones WLanguage y arrays

Se pueden utilizar varias funciones WLanguage para manipular arrays. Puede realizar búsquedas, ordenar elementos, etc. Para obtener más información, consulte Funciones de arrays.
Universal Windows 10 AppiPhone/iPadIOS WidgetApple WatchMac Catalyst

Array de arrays, arrays asociativos, colas, pilas y listas

Se admiten las siguientes sintaxis:
<variable> is array of arrays of int
<variable> is array of arrays of 5 int
<variable>  is array of 5 arrays of int
<variable> is array of 5 arrays of 5 int

<variable> is array of fixed arrays of 5 int
<variable> is array of 5 fixed arrays of 5 int

<variable> is array of associative arrays of int
<variable> is array of associative arrays (withDuplicates) of int
<variable> is array of associative arrays (withDuplicates,wlInt) of int
<variable> is array of 5 associative arrays of int
<variable> is array of 5 associative arrays (withDuplicates) of int
<variable> is array of 5 associative arrays (withDuplicates,wlInt) of int

<variable> is array of queues of int
<variable> is array of 5 queues of int

<variable> is array of stacks of int
<variable> is array of 5 stacks of int

<variable> is array of lists of int
<variable> is array of 5 lists of int

Limitaciones: Elementos del array

  • Un array puede incluir clases solo si éstas tienen un constructor sin parámetros (o con parámetros opcionales).
  • Un array no puede incluir variables compuestas.
  • AndroidWidget Android Un array no puede incluir arrays.

Arrays en las clases

Al copiar instancias de una clase, todos los miembros de la clase se copian en la nueva instancia, excepto los arrays. Por lo tanto, si se modifica el valor de un miembro de tipo Array, este también se modifica en todas las instancias.
Para obtener un array independiente en todas las instancias de la clase, debe declararse de la siguiente manera:
SystemClass is Class
	aDefaultArray is local array of 1 int
END

Agregar el contenido de una estructura a un array de estructuras sin utilizar una variable de la estructura

Si utiliza un array de estructuras con pocos miembros, puede ser más fácil agregar directamente una estructura utilizando el operador [ ] (corchetes).
Por ejemplo, para la siguiente estructura:
// Structure to store a letter and its ASCII code
STKey is Structure
sKey is string
nAsciiCode is int
END
// Array of structures
arrKeys is array of STKey

En la mayoría de los casos, el contenido se agrega utilizando una variable de un tipo declarado en la estructura:
// Temporary structure for the addition
stAKey is STKey
// Stores the letter A
stAKey.sKey = "A"
stAKey.nAsciiCode = Asc("A")
arrKeys.Add(stAKey)

Con el operador [ ], se obtiene una mejor legibilidad:
// Stores the letter A
arrKeys.Add(["A", Asc("A")])
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Exemplo com oop
Crio uma classe

Ex

ClasseMinhaArray is classe

m_minhaArray is array of st_minhaArray

End

St_minhaArray is structure
Nome is string
Endereco is string
Num is Int
Bairro is string
Cidade is string
Estado is string
Cep is string
End


Para usar em um botão ou procedure ou na abertura de uma janela:

//criando o obj

Obj1 is ClasseMinhaArray

ArrayAdd(Obj1:m_minhaArray)

//Alimentando a array da classe

Obj1.m_minhaArray[1].Nome = “Adriano”

Obj1.m_minhaArray[1].Endereco = “Rua Dr Rene Dinorah da Silveira”

Obj1.m_minhaArray[1].Num = 70

Obj1.m_minhaArray[1].Bairro = “Taruma”

Obj1.m_minhaArray[1].Cidade = “Curitiba”

Obj1.m_minhaArray[1].Estado = “Paraná”

Obj1.m_minhaArray[1].Cep = “82.530-510”

//se precisar limpar
ArrayDeleteAll(obj1:m_minhaArray)
Boller
12 06 2024
Exemplo
ARRAY MULTIDIMENSIONAL VARIAVEL

arrayCadastroFrutas is array of 1 by 4 STRING

ArrayDeleteAll(arrayCadastroFrutas)

Dimension(arrayCadastroFrutas,1,4)

X is int = 1

FOR EACH t000_frutas

arrayCadastroFrutas[X,1]=t000_frutas.t000_frutas_ID

arrayCadastroFrutas[X,2]=t000_frutas.t000_fruta

arrayCadastroFrutas[X,3]=t000_frutas.t000_ordem

arrayCadastroFrutas[X,4]=t000_frutas.t000_status

X++

Dimension(arrayCadastroFrutas, X, 4)

END
Boller
12 06 2024
Exemplo OOP com Array
Class_Oop_Crud is Class

m_painelcontrole is array of st_painelcontrole

END

st_painelcontrole is Structure

gs_NomeJanela is string

end


/////////////-------------------- Open Window:
obj1 is Class_Oop_Crud //criou o objeto // carimbo

ArrayAdd(obj1:m_painelcontrole) //dar a dimensao 1 para o array

obj1.m_painelcontrole[1].gs_NomeJanela = MyWindow..Name

/////////////--------------------Button
Info(obj1.m_painelcontrole[1].gs_NomeJanela)
Boller
17 04 2024
ARRAY MULTIDIMENSIONAL VARIAVEL
arrayAntes is array of 1 by 4 STRING
ArrayDeleteAll(arrayAntes)
Dimension(arrayAntes,1,4)
X is int = 1
FOR EACH t000_frutas
arrayAntes[X,1]=t000_frutas.t000_frutas_ID
arrayAntes[X,2]=t000_frutas.t000_fruta
arrayAntes[X,3]=t000_frutas.t000_ordem
arrayAntes[X,4]=t000_frutas.t000_status
X++
Dimension(arrayAntes, X, 4)
END
BOLLER
28 02 2024
Novo exemplo de array multi dimensional
ATENÇÃO

arrayAntes is array of 1 by 4 STRING
arrayAntes .Add([dimensão01,dimensão02])

ou

arrayAntes is array of 1 by 4 STRING
Dimension(arrayAntes,1,2)

Isso por que uma Matriz Multidimensional precisa ser iniciada, sem dar a dimensao dela não funciona
Boller
28 02 2024
item limit
I have a customer who is reaching the 65,000 item limit and was wondering if an array counted as one item or that if each element in the array counted towards the total. Like MyArray ["john","mary","frank"] is that one item towards the limit or three?
DECKFURNITURE
29 03 2019

Última modificación: 17/06/2024

Señalar un error o enviar una sugerencia | Ayuda local