AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Sintaxis WLanguage / Declaración de variables
  • Presentación
  • Múltiples asignaciones de arrays
  • Sintaxis
  • Array of values
  • Ejemplos
  • Múltiples asignaciones de arrays asociativa
  • Sintaxis
  • Ejemplo
  • Asignaciones múltiples de estructuras y clases
  • Sintaxis
  • Observaciones
  • Ejemplo
  • Nidificación
  • Separación silábica
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
Presentación
La asignación múltiple de arrays consiste en asignar un set de valores simples (booleano, entero, cadena, real, numérico o moneda) a las celdas de un array.
Esta asignación múltiple también está disponible para las estructuras y las clases.
Múltiples asignaciones de arrays

Sintaxis

  • array unidimensional:
    <1-dimensional array> = [ <Value 1>, <Value 2>, ...]
  • array bidimensional:
    <2-dimensional array> = [ [ <Value 1 1>, <Value 1 2>, ...],
    [ <Value 2 1>, <Value 2 2>, ...],
    ...
    ]
  • array tridimensional:
    <3-dimensional array> = [ [ [ <Value 1 1 1>, <Value 1 1 2>, ...],
    [ <Value 1 2 1>, <Value 1 2 2>, ...], ... ],
    [ [ <Value 2 1 1>, <Value 2 1 2>;, ...],
    [ <Value 2 2 1>, <Value 2 2 2>, ...], ... ],
    ...
    ]

Array of values

Cada set de valores representa una dimensión de la array de valores. Los conjuntos de valores pueden anidarse para crear un array de valores con varias dimensiones.
El número de dimensiones en la array de valores debe ser consistente: cada dimensión debe tener el mismo número de subdimensiones. Sin embargo, se puede encontrar un número diferente de elementos para cada dimensión.
Ejemplos:
// Array of values not allowed:
// The first value of the set has a sub-dimension
// The second value of the set has no sub-dimension
[[ <Value 1 1>, <Value 1 2> ], <Value 2> ]
// Array of values allowed:
// All the values of the set have a sub-dimension
// Each sub-dimension has a different number of elements
[[ <Value 1 1>, [ <Value 2 1>, <Value 2 2>, <Value 2 3> ],
[<Value 3 1>, <Value 3 2> ]]
Las dimensiones de la array de valores deben corresponderse con las dimensiones de la array a asignar.
Si las dimensiones de la array a asignar no son suficientes para almacenar los elementos encontrados en el array de valores, el array a asignar se redimensiona automáticamente.
Para una array fija, si las dimensiones de la array a asignar no son suficientes para almacenar los elementos encontrados en la array de valores, la array de valores se trunca.
Si las dimensiones de la array a asignar son mayores que las dimensiones de la array de valores, los elementos no asignados conservan sus valores anteriores.

Ejemplos

// Array of powers of 2
Power2 is array of 0 int
Power2 = [1, 2, 4, 8, 16, 32, 64, 128, 256]
// Array of numbers of days per month
// Line 1: non-leap year
// Line 2: leap year
NumberDays is array of 2 by 12 int
NumberDays = [[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
[31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]]
Múltiples asignaciones de arrays asociativa

Sintaxis

<Associative array> = [ [ <Key1>, <Value1> ],
[ <Key2>, <Value2> ],
...
]
La array de valores sólo debe contener 2 parejas (Clave, Valor).
Cada pareja se asigna a la array asociativa utilizando la equivalencia de la sintaxis: AssociativeArray[ Key] = Value.
Para una array asociativa sin duplicados:
  • Si la clave no existe todavía, se añade el valor.
  • Si la clave ya existe, el valor se modifica.
Para una array asociativa con duplicados, todos los valores se suman.

Ejemplo

// Associative array of acronyms of countries
Country is associative array of strings
Country = [["FR", "France"], ["US", "United States"], ["DE", "Germany"]]
Asignaciones múltiples de estructuras y clases

Sintaxis

  • Estructura:
    <Structure Instance> = [ <Member 1>, <Member 2>, ...]
  • Clase:
    <Class Instance> = [ <Member 1>, <Member 2>, ...]

Observaciones

  • Los miembros se asignan en el orden de declaración.
  • Para las clases, se ignoran las herencias: los miembros de la clase se asignan directamente.
  • Limitación: esta sintaxis no opera sobre las estructuras y clases dinámicas.

Ejemplo

State is Structure
Name is string
Number is int
Prefecture is string
END

Allier is State = ["Allier", 3, "Moulins"]
Nidificación
Las sintaxis de las asignaciones múltiples pueden ser utilizadas en arrays de estructuras, instancias de estructuras que contienen arrays, ...
State is Structure
Name is string
Number is int
Prefecture is string
END

ArrState is array of 0 State
ArrState = [["Ain", 1, "Bourg-en-Bresse"],
["Aisne", 2, "Laon"],
["Allier", 3, "Moulins"]]

ArrStateName is associative array of State
ArrStateName = [["Ain", ["Ain", 1, "Bourg-en-Bresse"]],
["Aisne", ["Aisne", 2, "Laon"]],
["Allier", ["Allier", 3, "Moulins"]]]
Separación silábica
Tiene la capacidad de describir la arrays de valores con roturas de Line sin utilizar la sintaxis de la separación de palabras (... dote triple).
Sin embargo, la sintaxis de los guiones debe ser usada para ir a la siguiente Line después del primer corchete de apertura. Por ejemplo:
State is Structure
Name is string
Number is int
Prefecture is string
END

Allier is State = [...
"Allier", 3, "Moulins"]
También se puede encontrar una coma delante de un corchete de cierre:
NumberDays = [[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
[31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
]
Versión mínima requerida
  • Versión 11
Esta página también está disponible para…
Comentarios
Example Array [N,X]
//Example Array [N,X]

arrMensajes is array of 1 by 3 strings

i is int = 1

SQLExec(sQuery,ds)

WHILE SQLFetch(ds) = 0
arrMensajes[i,1] = SQLGetCol(ds, 1) //id
arrMensajes[i,2] = SQLGetCol(ds, 2) //numero
arrMensajes[i,3] = SQLGetCol(ds, 3) //mensaje
i++
Dimension(arrMensajes, i, 3)
END
BOLLER
17 07 2019

Última modificación: 27/05/2022

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