PARSE

<< Click to Display Table of Contents >>

Navigation:  ThinBASIC Core Language > BuiltIn Functions > String functions >

PARSE

 

Description

 

Parse a string and extract all delimited records and/or fields into an array or matrix.

 

Syntax

 

Single array syntax

nItems = PARSE ( [FILE] MainString, Array, [ANY] Delimiter [, [ANY] FieldsDelim [, MaxRowToCheckForNField]] )

 

Multiple array syntax. Include multiple arrays between ().

To be used when using FiledDelim.

Each array will contain data from 1 parsed column.

Columns data can be omitted avoiding to specify an array

 

nItems = PARSE ( [FILE] MainString, (Array1, Array2, ,Array4), [ANY] Delimiter [, [ANY] FieldsDelim [, MaxRowToCheckForNField]] )

 

Multiple array syntax with column span. Include multiple arrays between ().

To be used when using FiledDelim.

Each array will contain data from 1 parsed column.

Columns data can be omitted avoiding to specify an array.

Arrays can be matrix adding a column span number (n) to array.

 

nItems = PARSE ( [FILE] MainString, (Array1, Array2(n), ,Array4), [ANY] Delimiter [, [ANY] FieldsDelim [, MaxRowToCheckForNField]] )

 

 

Returns

 

Number: number of items parsed in String_Expression

 

Parameters

 

Name

Type

Optional

Meaning

MainString

String

No

A string expression to be parsed

 

If FILE statement is specified, MainString is considered a file name and will be used to directly load specified file content

Array

Variable

No

The name of a previously defined array

Delimiter

String

No

The field delimiter, which may be one or more characters long.

If the ANY option is present, each appearance of any single character comprising Delimiter is considered a valid delimiter.

FieldsDelim

String

Yes

An additional field delimiter used in case String_Expression is a matrix. In this case Array will be re dimensioned to be a matrix.

If the ANY option is present, each appearance of any single character comprising FieldDelim is considered a valid delimiter.

MaxRowToCheckForNField

Numeric

Yes

PARSE function try to determine the number of fields scanning all rows in the quadratic buffer. This is quite time and memory consuming action because the full buffer will be scanned twice. In order to reduce this process, here programmer can indicate the number of rows to consider for determining the number of fields

 

Remarks

 

Array can be both a string array or a numeric array.

In case of numeric array, automatic string to number conversion will take place and numbers will be casted to the array numeric data type.

 

When FieldsDelim is specified, destination array will be transformed into a matrix depending on how many columns were found in MainString buffer

 

Restrictions

 

See also

 

String Handling,

 

Examples

 

Script example

'-------------------------------------

'---Array Example

'-------------------------------------

Dim MyMatrix() As String

Dim nLines     As Long

 

'---This line will dimension and fill MyMatrix to be an array of 6 elements

'   nLines will contain the number of items parsed, that is 6 in this case

nLines = PARSE("1,2,3,4,5,6", MyMatrix, ",")

 

MSGBOX 0, "Number of items: " & UBound(MyMatrix(1))

 


 

'-------------------------------------

'---Matrix Example

'-------------------------------------

Dim MyMatrix() As String

Dim nLines     As Long

 

'---This line will dimension and fill MyMatrix to be a matrix of 3 rows and 5 colums

'   nLines will contain the number of lines parsed, that is 3 in this case

nLines = PARSE("1,2,3,4,5|6,7,8,9,10|A,B,C", MyMatrix, "|"",")

 

MSGBOX 0, "Number of lines  : " & UBound(MyMatrix(1))

MSGBOX 0, "Number of columns: " & UBound(MyMatrix(2))