我正在为学校做帕斯卡的小项目。我正在使用 Lazaruz 1.0.2
写入文件时,wirteLn 函数出现问题。一段时间后,它会停止写入文件。
以这个程序为例:
var oFile: Text;
i: LongWord;
begin
Assign(oFile, 'test.txt');
ReWrite(oFile);
for i:=1 to 4096 do
WriteLn(oFile, 'ThisIsTest');
CloseFile(oFile);//Added as suggested
end.
这是输出:
...
4072 ThisIsTest
4073 ThisIsTest
4074 ThisIsTest
4075 ThisIsTe
如您所见,它只是停在句子的中间,并没有全部写完。一切都取决于一个 WriteLn 指令有多长以及它被调用了多少次。
如何解决?
我尝试使用名为 WriteFile 的“Windows”模块中的 WinApi 函数,但我未能将最后 3 个参数传递给它。
大更新
谢谢。在该示例中有效(关闭文件)。但是我有一些更复杂的程序,我将打开的文件句柄传递给通过“var”写入它的函数。即使在关闭该文件之后,并且什么也不做。它很奇怪。