频道分类

Delphi SetTextBuf

作者:admin 来源: 日期:2020/10/13 8:23:58 人气: 标签:

 
SetTextBuf
设置文本文件内部缓冲区的大小
procedure SetTextBuf(

  var f: Text;

  var Buf

);

procedure SetTextBuf(

  var f: Text;

  var Buf;

  Size: SizeInt

);

描述
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.