I meet a problem when I use the File Access 3.4.1.0 library to operate file access.
fbFileOpen:FILE_ACCESS.FILE.Open;
fbFileOpen(xExecute:=TRUE,sFileName:=strFileName,eFileMode:=FILE_ACCESS.FILE.MODE.MWRITE,xExclusive:=FALSE);
after fbFileOpen() executed,the content of the file that the function block open will be cleard! And the size of the file will be 0!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have just download the CoDeSys Examples of “FileUtilities”,that writes as:
IF xInit THEN
CASE iState OF
0: //Open the specified file with write access.
FileOpen(xExecute:= TRUE, sFileName:= sFileName, xExclusive:= FALSE, eFileMode:= File.MODE.MWRITE );
IF FileOpen.xDone = TRUE THEN
iState := 1;
hfile := FileOpen.hFile;
FileOpen(xExecute:= FALSE);
ELSIF FileOpen.xError = TRUE THEN
iState:= 32767;
FileOpen(xExecute:= FALSE);
END_IF
...
The code above is tested on CoDeSys Control Win V3, and if there has exist a file which the sFileName specifies, and the file size is not 0, but after the above FileOpen() function executed and success with xFone=TRUE.the file size is 0, which means the file which is open with File.MODE.MWRITE mode will be cleared to empty!
In my mind, if you open the file with File.MODE.MWRITE, if the file does not exists, the file will be created and opened;and if the file has existed, then the file will be opened and should be cleared to empty!
But the test above shows that open a file with File.MODE.MWRITE mode means create a new file or clear an existing file to empty!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I meet a problem when I use the File Access 3.4.1.0 library to operate file access.
fbFileOpen:FILE_ACCESS.FILE.Open;
fbFileOpen(xExecute:=TRUE,sFileName:=strFileName,eFileMode:=FILE_ACCESS.FILE.MODE.MWRITE,xExclusive:=FALSE);
after fbFileOpen() executed,the content of the file that the function block open will be cleard! And the size of the file will be 0!
I have just download the CoDeSys Examples of “FileUtilities”,that writes as:
IF xInit THEN
CASE iState OF
0: //Open the specified file with write access.
FileOpen(xExecute:= TRUE, sFileName:= sFileName, xExclusive:= FALSE, eFileMode:= File.MODE.MWRITE );
IF FileOpen.xDone = TRUE THEN
iState := 1;
hfile := FileOpen.hFile;
FileOpen(xExecute:= FALSE);
ELSIF FileOpen.xError = TRUE THEN
iState:= 32767;
FileOpen(xExecute:= FALSE);
END_IF
...
The code above is tested on CoDeSys Control Win V3, and if there has exist a file which the sFileName specifies, and the file size is not 0, but after the above FileOpen() function executed and success with xFone=TRUE.the file size is 0, which means the file which is open with File.MODE.MWRITE mode will be cleared to empty!
In my mind, if you open the file with File.MODE.MWRITE, if the file does not exists, the file will be created and opened;and if the file has existed, then the file will be opened and should be cleared to empty!
But the test above shows that open a file with File.MODE.MWRITE mode means create a new file or clear an existing file to empty!
As I understand it correctly, what you say is in both cases the same.