Questa funzione estrae da una stringa formattata un array di valori. In pString definire la stringa da decodificare ed in pArray definire l’array dei valori convertiti. La stringa Format specifica il formato con il quale estrarre le variabili il cui tipo è definito in VType, la funzione ritorna FALSE in caso di errore.
Descrizione
pString (@STRING) Indirizzo buffer stringa formattata da convertire.
pArray (PVOID) Indirizzo array dati risultato conversione.
ALength (UDINT) Dimensione array dati risultato.
VType (VR_TYPE) Definizione tipo variabili in array (Vedi definizione).
Format (@STRING) Ha due tipi di argomenti, i caratteri ordinari che vengono controllati dalla stringa da convertire e le specifiche di conversione, contraddistinte dal simbolo percentuale (%) e da un carattere che specifica il formato con il quale interpretare la variabile definita (Vedi definizione).
Separator (@STRING) Stringa separatrice dei vari elementi dell’array nella stringa risultato.
La funzione ritorna un BOOL. FALSE se errore esecuzione, TRUE esecuzione ok.

LogicLab (Ptp201, ST_FStringToArray)
PROGRAM ST_FStringToArray
VAR
RSts : ARRAY[0..1] OF BOOL; (* Result status *)
IP : ARRAY[0..3] OF USINT; (* IP address *)
FValue : ARRAY[0..2] OF REAL; (* FLOAT values *)
IPString : STRING[ 16 ]; (* IP address formatted *)
FString : STRING[ 32 ]; (* FLOAT values formatted *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_FStringToArray"
// *****************************************************************************
// This program shows the use of FStringToArray function.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// ARRAY CONVERSION
// -------------------------------------------------------------------------
// Convert the formatted string "192.168.0.122" to a USINT array.
IPString:='192.168.0.122'; //IP address formatted
RSts[0]:=FStringToArray(ADR(IPString), ADR(IP), SIZEOF(IP), BYTE_TYPE, ADR('%d'), ADR('.'));
// Convert the formatted string "12.34; 134.12; 4567.10" to a FLOAT array.
// This can be useful to acquire a line of CSV format data.
FString:='12.34; 134.12; 4567.10'; //FLOAT values formatted
RSts[1]:=FStringToArray(ADR(FString), ADR(FValue), SIZEOF(FValue), REAL_TYPE, ADR('%f'), ADR('; '));
// [End of file]