Datei - Bearbeitung (BEISPIEL)

 

(* Beispiel wie CAA_FILE.library – Funktionsblöcke für Dateibearbeitung zu verwenden sind *)

PROGRAM FILE.CHANGE_PRG

VAR

xFileChgInit:            BOOL:=FALSE;

uiFileChgState:        UINT:=0;

sFileOldName:              CAA.FILENAME:= 'TestFile.txt';

sFileNewName:      CAA.FILENAME:= 'NewFile.txt';

szCopiedFileSize:   CAA.SIZE := 0;

filcp:                        FILE.Copy;

filrn:                        FILE.Rename;

fildl:                         FILE.Delete;

END_VAR

IF NOT xFileChgInit THEN

fildl(xExecute:=FALSE);

filrn(xExecute:=FALSE);

filcp(xExecute:=FALSE);

xFileChgInit:=TRUE;

uiFileChgState:=0;

ELSE

CASE uiFileChgState OF

0:(* Datei kopieren *)

filcp.sFileNameSource:=sFileNewName;

filcp.sFileNameDest:='DestFile.txt';

filcp.udiTimeOut:=100000;                     (* 100ms Timeout    *)

filcp.xOverWrite:=TRUE;                        (* vorhandene Datei übersch­reiben *)

filcp( xExecute:=TRUE);

IF filcp.xDone THEN

szCopiedFileSize := filcp.szSize;

uiFileChgState:=1;

END_IF

IF filcp.xError THEN

(* Fehlerbehandlung *)

;

END_IF

1: (* Datei umbenennen *)

filrn.sFileNameOld:='DestFile.txt';

filrn.sFileNameNew:=sFileNewName;

filrn( xExecute:=TRUE);

IF filrn.xDone THEN

uiFileChgState:=2;

END_IF

IF filrn.xError THEN

(* Fehlerbehandlung *)

;

END_IF

2:(* Datei löschen *)

fildl.sFileName:=sFileNewName;

fildl( xExecute:=TRUE);

IF fildl.xDone THEN

uiFileChgState:=3;

END_IF

IF fildl.xError THEN

(* Fehlerbehandlung *)

;

END_IF

3:

(* Ende vom Beispiel*)

;

END_CASE

END_IF