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 überschreiben *)
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