### Revision history for KeyPgLbound

No Differences

No Differences

##### Additions:

[[KeyPgDeclare|declare]] [[KeyPgFunction|function]] **Lbound** ( array() [[KeyPgAs|as]] [[KeyPgAny|any]], [[KeyPgByval|byval]] //dimension// [[KeyPgAs|as]] [[KeyPgInteger|integer]] = 1 ) [[KeyPgAs|as]] [[KeyPgInteger|integer]]

- ##[[KeyPgUbound|Ubound]]##

- ##[[KeyPgStatic|Static]]##

- ##[[KeyPgDim|Dim]]##

- ##[[KeyPgRedim|Redim]]##

- ##[[KeyPgUbound|Ubound]]##

- ##[[KeyPgStatic|Static]]##

- ##[[KeyPgDim|Dim]]##

- ##[[KeyPgRedim|Redim]]##

##### Deletions:

- ##[[KeyPgUbound Ubound]]##

- ##[[KeyPgStatic Static]]##

- ##[[KeyPgDim Dim]]##

- ##[[KeyPgRedim Redim]]##

##### Additions:

If ##//dimension//## is zero (##0##), ##**Lbound**## returns ##1##, corresponding to the lower bound of the array dimensions ##1##..##//n//##. ##**Ubound**## returns ##//n//##, the number of dimensions, in this case. This can be used to detect the array's number of dimensions.

For any other (non-zero) ##//dimension//## values outside of the valid range ##1##..##//n//##, ##**Lbound**## returns ##0##. ##**Ubound**## returns ##-1## in this case. This can be used to detect whether a certain dimension exists in the array, and also works when used on an empty array which does not have any valid dimensions.

Thus, for empty dynamic arrays, we get:

- ##Lbound(array) = 0## and ##Ubound(array) = -1## (dimension 1 does not exist)

- ##Lbound(array, 0) = 1## and ##Ubound(array, 0) = 0## (zero dimensions)

- ##@array(Lbound(array)) = 0## (no data buffer allocated)

For any other (non-zero) ##//dimension//## values outside of the valid range ##1##..##//n//##, ##**Lbound**## returns ##0##. ##**Ubound**## returns ##-1## in this case. This can be used to detect whether a certain dimension exists in the array, and also works when used on an empty array which does not have any valid dimensions.

Thus, for empty dynamic arrays, we get:

- ##Lbound(array) = 0## and ##Ubound(array) = -1## (dimension 1 does not exist)

- ##Lbound(array, 0) = 1## and ##Ubound(array, 0) = 0## (zero dimensions)

- ##@array(Lbound(array)) = 0## (no data buffer allocated)

##### Deletions:

##### Additions:

Array dimensions are numbered from one (##1##) to ##//n//##, where ##//n//## is the total number of dimensions. If ##//dimension//## is not specified, ##**Lbound**## will return the lower bound of the first dimension.

If ##//dimension//## is zero (##0##) or another value outside of the valid range ##1##..##//n//##, the result is ##1##. Combined with the result of Ubound() for such cases, this can be used to detect the number of dimensions of variable-length arrays, for example whether a given dimension exists, or whether the array is empty (zero dimensions).

If ##//dimension//## is zero (##0##) or another value outside of the valid range ##1##..##//n//##, the result is ##1##. Combined with the result of Ubound() for such cases, this can be used to detect the number of dimensions of variable-length arrays, for example whether a given dimension exists, or whether the array is empty (zero dimensions).

##### Deletions:

If ##//dimension//## is zero (0) or another value outside of the valid range 1..//n//, the result is 1. Combined with the result of Ubound() for such cases, this can be used to detect the number of dimensions of variable-length arrays, for example whether a given dimension exists, or whether the array is empty (zero dimensions).

##### Additions:

Array dimensions are numbered from one (1) to //n//, where //n// is the total number of dimensions. If ##//dimension//## is not specified, ##**Lbound**## will return the lower bound of the first dimension.

If ##//dimension//## is zero (0) or another value outside of the valid range 1..//n//, the result is 1. Combined with the result of Ubound() for such cases, this can be used to detect the number of dimensions of variable-length arrays, for example whether a given dimension exists, or whether the array is empty (zero dimensions).

If ##//dimension//## is zero (0) or another value outside of the valid range 1..//n//, the result is 1. Combined with the result of Ubound() for such cases, this can be used to detect the number of dimensions of variable-length arrays, for example whether a given dimension exists, or whether the array is empty (zero dimensions).