parserealarray
Prototype: parserealarray(array, input, comment, split, maxentries, maxbytes)
Return type: int
Description: Parses up to maxentries
values from the first maxbytes
bytes in string input
and populates array
. Returns the dimension.
This function mirrors the exact behavior of
readrealarray()
, but read data from a variable
instead of a file. By making data readable from a variable, data driven
policies can be kept inline.
The comment
field is a multiline regular expression and will strip out
unwanted patterns from the file being read, leaving unstripped characters to be
split into fields. Using the empty string (""
) indicates no comments.
Arguments:
array
: Array identifier to populate, in the range[a-zA-Z0-9_$(){}\[\].:]+
input
: A string to parse for input data, in the range"?(/.*)
comment
: Unanchored regex matching comments, in the range.*
split
: Unanchored regex to split data, in the range.*
maxentries
: Maximum number of entries to read, in the range0,99999999999
maxbytes
: Maximum bytes to read, in the range0,99999999999
Example:
bundle agent __main__
{
vars:
# Define data inline for convenience
"table"
string => "1.0:2.718
3:4.6692
5.0:6.82";
"dim"
int => parserealarray(
"items",
"$(table)",
"\s*#[^\n]*",
":",
"1000",
"200000"
);
"keys" slist => sort(getindices("items"));
reports:
"$(keys) - $(items[$(keys)][1])";
}
Output:
R: 1.0 - 2.718
R: 3 - 4.6692
R: 5.0 - 6.82
History: Was introduced in version 3.1.5a1, Nova 2.1.0 (2011)
See also: parsestringarray()
, parseintarray()
, readstringarray()
, readintarray()
, readrealarray()