Vai al contenuto

FStringToArray, estracts a value array from formatted string

Vai all indice del manuale di programmazione
Tipo: Funzione
Libreria LogicLab: eLLabCommonLib
Libreria Codesys: Non disponibile

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.

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