IF xWrite THEN
//xWrite := FALSE;
hFile :=SysFileOpen(szFile:=szFileName, am:=SYSFILE.AM_APPEND_PLUS , pResult:=ADR(iecResult));//打开文件,其中AM_APPEND_PLUS方式不会覆盖文件内信息,
IF hFile <> RTS_INVALID_HANDLE THEN
Stu.ConvertUTF16toUTF8(sourceStart :=ADR(joint), targetStart :=ADR(sUTF8TextLine), dwTargetBufferSize :=SIZEOF(joint), bStrictConversion := TRUE);sysfileSetpos(hFile:=hFile,ulOffset:= start);//定位写文件的坐标开始位置start
udiWrite :=SysFileWrite(hFile:=hFile, pbyBuffer:=ADR(sUTF8TextLine), ulSize:=INT_TO_UDINT(LEN(sUTF8TextLine)), pResult:=ADR(iecResult));//写文件
iecResult :=SysFileClose(hFile:=hFile);
end:=start+LEN(WSTRING_TO_STRING(joint));
END_IF
END_IF
主函数 声明变量区代码
PROGRAM PLC_PRG
VAR
fbWriteFile : WriteDataFunction;//实例化WriteFile功能块
i: INT;
start:INT;
end: INT;
a:BOOL:=TRUE;
haha:WSTRING(INT#7);
END_VAR
程序区代码
IF a = TRUE THEN
FOR i:=1 TO 6 BY 1 DO
haha:="shifeng";fbWriteFile(joint:=haha,start:=start,end=>end);//循环在文件中写入,并且不覆盖文件中内容,end 用来记录输出的文件末位置,start输入 写入的位置。
start:=end;
END_FOR
a:=FALSE;
END_IF