Array initialize_properties Method
Syntax
Arguments
- formatCharacter
Defines the structure of the Data string and also defines the names of the array properties. The names of the array properties are separated by a delimiter (a non alphanumeric character or string, such as "|", "@", or "~~"). A property name may be followed by an optional type designation in the format Property_Name:Type_Designation. The default type is character. The following type designations are possible.
- Format
- Meaning
- C
Character
- N
Numeric
- D
Date
- L
Logical
- B
Blob
- F
Function
- *
Supplied with the data element.
- dataCharacter
A CR-LF delimited string of data values.
- appendLogical
If .t., data will be appended to existing data in the array.
Description
Initialize property array subfields from a string of newline separated 'rows'.
Discussion
The <array>.initialize_properties() method loads field values from a data string into a property array. The format parameter defines the structure of the data parameter and also defines the names of the array properties. data is a CR-LF delimited string of data values. Each format element can be followed by an optional type.
For example, assume you supplied the following format string:
"Name + Age:N + Occupation"
Alpha Anywhere would create an array with three properties: name, age and occupation. It would look in the data string for values separated by the " + " separator. The Age property is Numeric.
For example, the following data string could be used with the above format string:
"Fred + 23 + Sales Tom + 45 + Development Joanne + 55 + President"
The optional type in the format string can also be '*' (in addition to 'C' 'N' 'D' 'L' 'B' and 'F' (for Function) ). If you use the '*' type, then it is assumed that the data that you are reading in is prefixed with the type (see example below). The array element is initialized with the type specified in the data that is being read in.
Example
The following script initializes a property array:
Data = <<%string% Stephanie + 23 + Sales Joanne + 45 + Development Rita + 55 + President %string% dim name[3] as P name.initialize_properties("Name + Age:N + Position",data)
This creates the following array:
Element | Name | Age | Position |
---|---|---|---|
Name[1] | Stephanie | 23 | Sales |
Name[1] | Joanne | 45 | Development |
Name[1] | Rita | 55 | CEO |
The following example shows the use of the '*' parameter in the format string.
dim p[3] as P p[1].NAME = "name" p[1].VALUE = "fred" p[2].NAME = "age" p[2].VALUE = 47 p[3].NAME = "dob" p[3].VALUE = {12/18/52} string = p.dump_properties("name::value:*") ? string = name::Cfred age::N47 dob::D12/18/1952 :: dim s[3] as P s.initialize_properties("name::value:*",string) ? s[1].VALUE = "fred" ? s[2].VALUE = 47 ? s[3].VALUE = {12/18/1952} ? typeof(s[3].VALUE) = "D"