SysGetFileLen, file length

List

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

Questa funzione da eseguire in task Back, ritorna la lunghezza in bytes di un file. In Name occorre definire il nome del file di cui si vuole conoscere la lunghezza specificando l’intero percorso (Esempio C:\Directory\File.txt). Se il file indicato non è presente, la funzione ritorna eEOF.

Nota: Questa funzione è da utilizzarsi per verificare la presenza del file su disco.

Sostituisce Sysfilelength

Sostituisce la funzione Sysfilelength modificando il tipo di parametri in ingresso da stringa a puntatore a stringa. La precedente dichiarazione:

FLength:=Sysfilelength('C:DirectoryFile.txt');

Diventa:

FLength:=SysGetFileLen(ADR('C:DirectoryFile.txt'));
Information Circle

Funzione

CODESYS: Non disponibile

LogicLab: eLLabXUnified12Lib

Descrizione

Name (@STRING) Nome del file di cui si vuole conoscere la lunghezza.

La funzione ritorna un (DINT) con la lunghezza del file espressa in byte, eEOF se file non presente.

Immagine F SysGetFileLen

Esempi

Come utilizzare gli esempi.
Nell’esempio attivando da debug la variabile CSize, viene ritornata la lunghezza del file C:\Directory\File.txt se presente, se non presente verrà ritornato eEOF. La variabile viene resettata. In caso di errore di esecuzione il codice di errore è memorizzato nella variabile ECode.

LogicLab (Ptp116, ST_SysGetFileLen)
PROGRAM ST_SysGetFileLen
VAR
    CSize : BOOL; (* Check size command *)
    FLength : DINT; (* File length *)
    ECode : UDINT; (* Error code *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysGetFileLen"
// *****************************************************************************
// By setting the CSize command the file length is readed.
// -----------------------------------------------------------------------------

    IF (CSize) THEN
        CSize:=FALSE; //Check size command

        FLength:=SysGetFileLen(ADR('C:\Directory\File.txt')); //File length

        // Check if file is present on disk.

        IF (FLength = eEOF) THEN
            FLength:=0; //File length
            ECode:=SysGetLastError(TRUE); //Error code
        END_IF;
    END_IF;

// [End of file]
Was this article helpful?