Baanboard.com

Go Back   Baanboard.com

User login

Frontpage Sponsor

Main

Google search


Poll
How big is your Baan-DB (just Data AND Indexes)
0 - 200 GB
18%
200 - 500 GB
18%
500 - 800 GB
6%
800 - 1200 GB
6%
1200 - 1500 GB
12%
1500 - 2000 GB
18%
> 2000 GB
24%
Total votes: 17

Baanboard at LinkedIn


Reference Content

 
Arrays
By patvdv at 26 Feb 2008 - 21:56


Arrays

You use arrays to store multiple variables of the same type within one data item. Each variable can be referred to with the construction

array_name(index)

For example, the first element in a one-dimensional array is

array_name(1)

An array can have up to four dimensions. The dimension (and, in case of a string, also the length) of an array must be stated in the declaration.

There are three types of arrays: long, double, and string.

Long arrays

You declare one-dimensional long arrays as follows:

LONG lng_array(5)    | 1-dimensional array for 5 longs

The number in parentheses after the array name specifies the number of longs that can be stored in the array. You declare two-dimensional long arrays as follows:

LONG lng_array(2,4)

The first number after the array name indicates the number of dimensions in the array. The second number indicates the number of longs that can be stored in each dimension. The following diagram illustrates a two-dimensional array as a matrix:

3 100
4 98
56 55
78 77
 lng_array(1,1) = 3     lng_array(2,1) = 100
lng_array(1,2) = 4 lng_array(2,2) = 98
lng_array(1,3) = 56 lng_array(2,3) = 55
lng_array(1,4) = 78 lng_array(2,4) = 77

Double arrays

A double array differs from a long array only in that it is prefixed by the keyword DOUBLE and the array elements must be filled with double values. You declare a double array as follows:

 DOUBLE dbl_array(5)

String arrays

The declaration of string arrays differs from that for other array type in that the first dimension contains the length of the strings to be stored in the array. For example:

 STRING str_arr(10,5)     | 5 strings of length 10
STRING str_arr(10,5,5,5) | A 5 x 5 x 5 matrix of strings of length 10

When referencing a string array, the first dimension indicates the start position in the string. The particular string to be accessed is indicated by the other dimensions. It is possible to specify a length for the string to be retrieved by using a semicolon [;] followed by the required length. If you omit the length, the total length of the string is taken.

Example two-dimensional string array

STRING str_arr(6,2)
Space reserved for 2 strings of 6 characters each. For example, the first string contains "abcdef" and the second "ABCDEF".
str_arr(1,1) = "abcdef"
This references the first string starting at position 1.
str_arr(2,1;1) = "b"
This references the first string starting at position 2 with length 1.
str_arr(3,2) = "CDEF"
This references the second string beginning at position 3.

Example filling string variables

Consider a string declared as

STRING strg(26)

The statements listed below will have the indicated results:

strg = "good morning"
The words "good morning" are stored from the first position of strg:
"good morning"
strg(1) = "good morning"
The same result but filled with spaces:
quot;good morning "
strg(9) = "good morning"
The string is stored from position 9 onwards and filled with spaces:
" good morning "
strg(2;3) = "Hello"
The letters "Hel" (3 characters) are stored from position 2 onwards:
" Hel good morning "

Example accessing string variables

Suppose the string declared in the previous example has the value "ABCDEFGHIJKLMNOPQRSTUVWXYZ". The results of the statements below will be as indicated:

 print strg         "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print strg(13) "MNOPQRSTUVWXYZ"
print strg(2;3) "BCD"

In these examples, strg(n) refers to the entire array from position n onwards and strg(n;x) refers to x positions starting at position n.

Example two-dimensional string array

Consider a 2-dimensional string array declared as:

STRING twice(6,2)

The statements below will have the indicated results.

twice(1,1) = "ABCDEF"
The first string is filled from position 1 onwards.
twice(1,2) = "123456"
The second string is filled from position 1 onwards.
print twice(3,1)
"CDEF" is printed.
print twice(4,1;2)
Two characters are printed starting at position 4 in string 1 - that is, "DE" is printed.

String lengths

There are two lengths associated with a string: the maximum and the current length. The maximum length is defined at declaration of the string and the current length can vary, depending on the contents of the string.

If a string is declared as STRING strg(100), the maximum length of strg is 100. If strg is filled as strg = "hello", the current length is 5. If strg is filled as strg(1) = "hello", the current length is also is 100, as the remaining positions are filled with spaces. When you specify a start position, the string is always filled out with spaces.

If a string is declared as FIXED, the current length is always equal to the maximum length, because the string is always filled up with spaces. Also, in the case of multi-dimensional strings, the current length is always equal to the maximum length.

Related topics

0
No votes yet


All times are GMT +2. The time now is 13:07.


©2001-2018 - Baanboard.com - Baanforums.com