ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage syntax / Declaring variables
  • Deleting a dynamic array (optional)
  • Passing a dynamic array as parameter to a procedure
  • Declaring a dynamic array member
  • WLanguage functions and dynamic arrays
  • Limits: Elements of a dynamic array
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Dynamic array (Variable type)
In french: Tableau dynamique (Type de variable)
A dynamic array is an "advanced" type of array: the dimensions of this array are allocated upon request during the execution of the program. In most cases, a "simple" array is sufficient.
Reminder: An array is a structured type that is used to group a set of elements of the same type. Each element of the array can be accessed by its index.
It is recommended to use:
  • A dynamic array or a "simple" array when the size of the array must be modified during the program execution.
  • A fixed array for the Windows APIs.
  • An associative array to store the elements indexed on any type of information.
Example
// Déclarer un tableau dynamique
TableauClient is array dynamic
// Allouer un tableau dynamique
TableauClient is array dynamic

TableauClient = new array of 4 by 7 int
// Équivalent à : TableauClient = allouer un tableau de 4,7 entiers
// (A partir de la version 17) Équivalent à : TableauClient = allouer un tableau [4,7] entiers
// Faire référence à un tableau dynamique
TableauClient[2,5,3] = 47
// Équivalent à : TableauClient[2][5][3] = 47
Syntax

Declaring a dynamic array Hide the details

<Name of dynamic array> is dynamic array
<Name of dynamic array>:
Name of the dynamic array variable to declare.

Allocate a dynamic array (syntax 1)


<Name of dynamic array> = new array [ <Dimension 1> [,<Dimension 2> ... [<Dimension 10>]] ] <Type of array elements>
Example:
TableauClient is array dynamic
TableauClient = new array [4,7] int

Allocate a dynamic array (syntax 2) Hide the details

<Name of dynamic array> = new array of <Dimension 1> [by <Dimension 2> ... [by <Dimension 10>]] <Type of array elements>

OR

<Name of dynamic array> = new array of <Dimension 1> [,<Dimension 2> ... [,<Dimension 10>]] <Type of array elements>
<Name of dynamic array>:
Name of the dynamic array to use. This array was declared beforehand.
<Dimension 1>...<Dimension 10>:
Dimension 1 to 10 of the array (integer value equal to or greater than 0).
<Type of array elements>:
Type of the elements found in the array. See The different types of WLanguage.

Turning reference into a dynamic array

Remark: To refer to a dynamic array, this array must be allocated.

Referring to a one-dimensional dynamic array

<Array name>[Index1]

Referring to an element in a two-dimensional array:

<Array name>[Index1, Index2]

OR

<Array name>[index1][index2]

Referring to an element in an array with N dimensions

<Array name>[Index1,...,IndexN]

OR

<Array name>[Index1]...[IndexN]

Passing an array as parameter to a procedure: Hide the details

<Procedure name>(<Array name>)
<Array name>:
Name of the dynamic array to use.
<Index1>:
Index of the element for the 1st dimension.
<Index2>:
Index of the element for the 2nd dimension.
<IndexN>:
Index of the element for the Nth dimension (N <= 10).
Remarks

Deleting a dynamic array (optional)

A dynamic array is automatically deleted at the end of the lifetime of the variable (e.g., when the window is closed) or when new dimensions are allocated.
To delete a dynamic array, use the following syntax:
libérer <Nom du tableau dynamique>
If the dynamic array is declared and allocated in the same line of code, you should not use the Release keyword to delete the dynamic array. A runtime error will occur if Release is used.

Passing a dynamic array as parameter to a procedure

A dynamic array can be passed as parameter to a procedure. To do so, use the following syntax:
<Nom de la procédure>(<Nom du tableau>)
For example:
TableauFourn is array dynamic
TableauFourn = new array of 10 by 50 strings of characters
// Appel de la procédure AfficheTableau
AfficheTableau(TableauFourn)

Declaring a dynamic array member

A "dynamic array" member can be declared in:
  • a structure,
  • a composite variable,
  • a class.
The dynamic array must be allocated after the declaration of the structure or composite variable.
For example:
// Déclaration d'une structure
Struct is Structure
x1 is int
x2 is array dynamic // Déclaration du tableau
END

// Déclaration d'une variable de type structure
MaStruct is Struct
// Allocation du tableau
x2 = new array dynamic of 4,7 int
For a class, the declaration must be done in the declaration code of the class and the allocation must be cone in the class constructor.

WLanguage functions and dynamic arrays

Several WLanguage functions can be used to handle the dynamic arrays. You have the ability to perform sorts, searches, ... For more details, see Array functions.

Limits: Elements of a dynamic array

  • A dynamic array can be made of classes only if these classes have a constructor without parameter (or with optional parameters).
  • A dynamic array cannot include:
    • composite variables,
    • arrays.
Minimum version required
  • Version 9
This page is also available for…
Comments
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 Jul. 2019

Last update: 03/06/2024

Send a report | Local help