描述
SetTextBuf将I / O缓冲区分配给文本文件。新缓冲区位于Buf,长度为Size个字节。如果省略Size,则假定为SizeOf(Buf)。任何文本文件的标准缓冲区为128个字节长。对于繁重的I / O操作,这可能会太慢。所述SetTextBuf过程允许设置一个更大的缓冲器,用于应用程序的I / O,因此降低了系统调用的次数,并且因此减少了对系统资源的负荷。新分配的缓冲区的最大大小为65355字节。
备注:
切勿为打开的文件分配新的缓冲区。可以在调用Rewrite,Reset或Append之后立即分配一个新的缓冲区,但不能在读取/写入文件之后分配。这可能会导致数据丢失。如果在执行读/写操作后必须分配新的缓冲区,则应首先刷新文件。这样可以确保清空当前缓冲区。
注意分配的缓冲区始终有效。如果将局部变量分配为缓冲区,则程序退出本地程序块后,缓冲区将不再有效,并且可能会发生堆栈问题。
Assign 分配 为文件分配名称
Reset 重启 打开文件以供阅读
Rewrite 改写 打开文件进行写入
Append 附加 以追加模式打开文件
例
程序实例61 ;
{用于演示SetTextBuf函数的程序。}
Var
Fin,Fout : Text;
Ch : Char;
Bufin,Bufout : Array[1..10000] of byte;
begin
Assign (Fin,paramstr(1));
Reset (Fin);
Assign (Fout,paramstr(2));
Rewrite (Fout);
{ This is harmless before IO has begun }
{ Try this program again on a big file,
after commenting out the following 2
lines and recompiling it. }
SetTextBuf (Fin,Bufin);
SetTextBuf (Fout,Bufout);
While not eof(Fin) do
begin
Read (Fin,ch);
write (Fout,ch);
end;
Close (Fin);
Close (Fout);
end.