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.
Funzione
CODESYS: Non disponibile
LogicLab: eLLabCommonLib
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 (Ptp200, ST_FStringToArray)
PROGRAM ST_FStringToArray
VAR
i : UDINT; (* Auxiliary variable *)
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 ArrayToFString function.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// ARRAY CONVERSION
// -------------------------------------------------------------------------
// Convert the formatted string "192.168.0.122" to a USINT array.
IPString:='192.168.0.122'; //IP address formatted
i:=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
i:=FStringToArray(ADR(FString), ADR(FValue), SIZEOF(FValue), REAL_TYPE, ADR('%f'), ADR('; '));
// [End of file]