A fixed array is an "advanced" type of array: the dimensions of this array are defined during the compilation and they cannot be modified.

The dimensions of a fixed array are defined during the compilation, only if the dimensions of this array correspond to:

an integer,

a constant that was created beforehand.

Otherwise, a WLanguage error occurs during the compilation of the project.

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.

We advise you to use:

A fixed array to pass an array in parameter to the Windows API functions.

A dynamic array or a "simple" array when the size of the array must be modified during the program execution.

An associative array to store the elements indexed on any type of information.

Example

// Declare a fixed array CustomerArray is fixed array of 5 by 7 by 3 int // Equivalent to: CustomerArray is fixed array of 5,7,3 int

// Refer to a fixed array CustomerArray[2,5,3] = 47 // Equivalent to: CustomerArray[2][5][3] = 47

Syntax

Versions 17 and later

Declaring a fixed array

<Array name> is fixed array [ <Dimension 1> [,<Dimension 2> ... [,<Dimension 10>]] ] <Type of array elements>

Example:
arrString is fixed array [10] strings
arrInt is fixed array [5,9] int

New in version 17

Declaring a fixed array

<Array name> is fixed array [ <Dimension 1> [,<Dimension 2> ... [,<Dimension 10>]] ] <Type of array elements>

Example:
arrString is fixed array [10] strings
arrInt is fixed array [5,9] int

Declaring a fixed array

<Array name> is fixed array [ <Dimension 1> [,<Dimension 2> ... [,<Dimension 10>]] ] <Type of array elements>

Example:
arrString is fixed array [10] strings
arrInt is fixed array [5,9] int

<Array name> is fixed array of <Dimension 1> [by <Dimension 2> ... [by <Dimension 10>]] <Type of array elements>

OR

<Array name> is fixed array of <Dimension 1> [,<Dimension 2> ... [,<Dimension 10>]] <Type of array elements>

Index of the element for the Nth dimension (N <= 10). Remark: An array cannot be handled as a whole. For example, an array cannot be assigned to another array.

Remarks

Passing a fixed array in parameter to a procedure

A fixed array can be passed in parameter to a procedure. To do so, use the following syntax:

<Procedure name>(<Array name>)

For example:

SupplierArray is fixed array of 10 by 50 string // Call to the DisplayArray procedure DisplayArray(SupplierArray)

Declaring a fixed array member

A "fixed array" member can be declared in:

A class. This fixed array is directly allocated in the memory zone of this class.

A composite variable. This fixed array is directly allocated in the memory zone of this composite variable.

A structure <Structure name>. This fixed array is directly allocated in the memory zone of each <Structure name> variable.

For example:

Struct is Structure n1 is int nArray is fixed array of 2 int n2 is int END MyStructure is Struct

Representation of the memory zone of "MyStructure":

This memory representation is compatible with the Windows APIs. Therefore, a fixed-size array can be transmitted to a function of the Windows APIs.

Dimension of a fixed array

The Dimension function and the Count property are used to get the number of elements in a fixed array. Reminder: A fixed array cannot be resized.

Versions 20 and later

Fixed array of arrays, associative array, queue, stack, list

The following syntaxes are supported:

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

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

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

<variable> is fixed array of 5 queues of int

<variable> is fixed array of 5 stacks of int

<variable> is fixed array of 5 lists of int

New in version 20

Fixed array of arrays, associative array, queue, stack, list

The following syntaxes are supported:

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

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

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

<variable> is fixed array of 5 queues of int

<variable> is fixed array of 5 stacks of int

<variable> is fixed array of 5 lists of int

Fixed array of arrays, associative array, queue, stack, list

The following syntaxes are supported:

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

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

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

<variable> is fixed array of 5 queues of int

<variable> is fixed array of 5 stacks of int

<variable> is fixed array of 5 lists of int

Limitations: Elements of fixed array

A fixed array can include classes only if these classes have a constructor without parameter (or with optional parameters).

A fixed array cannot include:

composite variables,

tables.

A fixed array cannot be made of composite variables.

A fixed array cannot be made of arrays.

You cannot create fixed arrays of classes or structures.