[This HELP section is not complete yet: read the respective section in STARLING for DOS Help].
In the expressions that are passed to STARLING you can use the following function names (parameters are included within round brackets).
You can use all of them in your expressions. If you make some mistake (forget about parentheses, brackets or misspell some string or variable), the system will display an error message - it is up to you to correct your expression.
AAdd(aArray, expr, [nElement]) --> xValueAAdd() is used to manage dynamic lists. The function
ASize()
has a similar purpose, allowing the size of any array to be set. The advantage
of AAdd() is that the value expr is also assigned to the
new element.ADel,
AEval, AIns,
ASizeAbs(nExpr) --> nPositiveExp,
Log,
Max, Min,
ModAClone(aArray) --> aClonedArrayACopy()
only copies the elements in the first dimension of an array and does not
consider subarrays, it cannot be used to copy a multidimensional array.
AClone(), on the other hand, also creates copies of subarrays
if array references are contained in the elements of aArray.ACopy,
ADel,
AIns, ASizeACopy(aSource, aTarget, [nStartSource], [nCount],
[nStartTarget]) --> aTargetAClone()
must be used.AClone,
ADel,
AEval, AFill,
AIns, ASortADel(aArray, nElement) --> aSourceNIL.
The number of array elements Len(aArray) remains unchanged
by ADel(). To remove the last element after ADel(), the
function ASize() must be used.AAdd,
ACopy,
AFill, AIns,
ASizeAEval(aArray, bBlock, [nStart], [nCount],
[lAssign]) --> aArray.T., the array element is passed
to the code block by reference. If an assignment to the first code block
parameter is made, it is reflected in the corresponding array element.AEval(),
since the function merely passes the contents of each element on to the
code block. However, the code block must assure that only correct data
types are processed.DbEval, EvalAFill(aArray, [expr], [nStart], [nCount])
--> aArrayNIL by default), starting with array
element nStart (1 by default). The value can be of any data type.
If the value is an object or an array, all the elements of the filled array
contain the same reference to the object or subarray. The function assigns
the value only to the elements of the first dimension. Multidimensional
arrays cannot be filled with AFill().AAdd,
AEval,
DbStruct, Directory,
stDbStruct,
stRecordStructAIns(aArray, nElement, [expr]) --> aArrayLen(aArray) remains unchanged by AIns().
To avoid losing the value in the last element the function AAdd()
can be used. AAdd() adds an element to the
end of the array prior to the insertion.AAdd,
ACopy,
ADel, AEval,
AFill, ASizeAllTrim(s) --> sTrimmedChr(32)) at the beginning and end of
a character string. The similar functions
LTrim() and RTrim()|Trim()
remove blank spaces only at the beginning or end of a character string.
The counterpart to AllTrim() is the function PadC(),
which adds blank spaces to the beginning and end of a character string.PadC|PadL|PadRArray(nDimension1 [, nDimensionN...]) --> aArrayNIL in all elements
(except for Array(0) which creates an empty array which has no
elements). If the argument nDimensionX is included, an array with
nDimensionX
elements is assigned to each array element of the dimension nDimension1.
These arrays also have the value NIL in all elements. Neither
the number of dimensions nor the number of elements per array is limited.AAdd,
AClone,
ACopy, ADel, AEval,
AFill, AInsAsc(s) --> nAsc() is the function Chr(),
which converts an ASCII code to an ASCII character.Chr,
Str,
ValAScan(aArray, bxSeekExpr, [nStart], [nCount])
--> nElementAScan() terminates the search, returning the
position of this array element as a numeric value. AScan() uses
the simple equals operator (=) for the comparison. Because of this, the
search of character strings is dependent on the settings SET EXACT, SET
LEXICAL and SET COLLATION.AScan() evaluates the code block passing it the contents
of each array element. The code block must perform a comparison and return
a logical value. As soon as the code block returns .T., AScan()
terminates and returns the position of this element. The code block is
necessary when a complex search condition must be used or when the search
is performed on a multidimensional array.
AEval,
EvalASize(aArray, nElements) --> aArrayNIL. If the array is shortened, the elements at the end
of the array are deleted and their contents are lost.AAdd()
which attaches a single array element at the end and optionally assigns
it a value. The contents of array elements can also be manipulated with
the functions AIns() and ADel(),
which do not change the size of the array.AAdd,
ADel,
AFill, AInsASort(aArray, [nStart], [nCount], [bOrder])
--> aArrayASort(). To create ascending order, the code block must return
the result of evaluating whether x1 < x2. To create descending
order, the code block must return the result of evaluating whether x1
> x2..F. being less than .T.. Date
values are sorted chronologically and numeric values according to their
size.AEval,
AScan,
DbSort, Eval