FStringToArray, estracts a value array from formatted string

List

Questa pagina fa parte del Manuale Programmazione IEC 61131-3. Vai all indice.

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.

Information Circle

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.

Immagine funzione FStringToArray
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]
Was this article helpful?