ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage syntax / Declaring variables
  • Deallocating a dynamic array (optional)
  • Passing a dynamic array as parameter to a procedure
  • Declaring a dynamic array member
  • WLanguage functions and dynamic arrays
  • Limitations: 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
A dynamic array is an "advanced" type of array: the array grows as new items are inserted during the execution of the program. In most cases, a "simple" array is sufficient.
Reminder: An array is a structured type used to group together a set of elements of the same type. Each element of the array can be accessed by its index.
It is recommended to use:
Example
// Declare a dynamic array
CustomerArray is dynamic array
// Allocate memory for a dynamic array
CustomerArray is dynamic array

CustomerArray = new array of 4 by 7 int
// Equivalent to: CustomerArray = new array of 4,7 int
// (From version 17) Equivalent to: CustomerArray = new array [4,7] int
// Reference a dynamic array
CustomerArray[2,5,3] = 47
// Equivalent to: CustomerArray[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 be declared.

Allocating memory for a dynamic array (syntax 1)


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

Allocating memory for 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 be used. This array must have been declared previously.
<Dimension 1>...<Dimension 10>:
Dimensions of the array from 1 to 10 (integer greater than or equal to 0).
<Type of array elements>:
Type of the elements in the array. See The different WLanguage types.

Referencing a dynamic array

Remark: To reference a dynamic array, the necessary memory must have been allocated.

Referencing a one-dimensional dynamic 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 an array with N dimensions

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

OR

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

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

<Procedure name>(<Array name>)
<Array name>:
Name of the dynamic array to be used.
<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

Deallocating a dynamic array (optional)

A dynamic array is automatically deallocated when the variable's lifetime ends (e.g., when the window is closed) or when new dimensions are allocated.
To deallocate a dynamic array, use the following syntax:
delete <Name of dynamic array>
If the dynamic array is declared and allocated in the same line of code, don't use the Delete keyword to deallocate the dynamic array. A runtime error will occur if Delete is used.

Passing a dynamic array as parameter to a procedure

A dynamic array can be passed as a parameter to a procedure. To do so, use the following syntax:
<Procedure name>(<Array name>)
For example:
SupplierArray is dynamic array
SupplierArray = new array of 10 by 50 character strings
// Call to the DisplayArray procedure
DisplayArray(SuppArray)

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:
// Declare a structure
Struct is Structure
	x1 is int
	x2 is dynamic array		// Declare the array
END

// Declare a structure variable
MyStruct is Struct
// Allocate the array
x2 = new dynamic array of 4,7 int
For a class, the dynamic array must be declared in the class declaration and memory must be allocated in the class constructor.

WLanguage functions and dynamic arrays

Several WLanguage functions can be used to manipulate dynamic arrays. You can search and sort the contents of an array, etc. For more details, see Array functions.

Limitations: Elements of a dynamic array

  • A dynamic array can include classes only if these classes have a constructor without parameters (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: 04/12/2024

Send a report | Local help