可以为程序定义自身的文本文件设备驱动程序。文本文件设备驱动程序是一套四个函数,这些函数完整地实现了Object Pascal文件系统和某个设备之间的接口。
用于定义每个设备驱动程序的四个函数是Open、InOut、Flush和Close。每个函数的首部都是
function DeviceFunc(var F: TTextRec): Integer;
这里的DeviceFunc是函数名称(即Open、InOut、Flush或Close)。设备接口函数的返回值将成为IOResult函数的返回值。如果返回值是零,那么操作是成功的。
要关联设备接口函数到指定的文件,必须编写定制的Assign过程。Assign过程必须将四个设备接口函数的地址指定到在文本文件变量中的四个函数指针。此外,还应当存储fmClosed常量到Mode字段,存储文本文件缓冲区的尺寸到BufSize,存储指向文本文件缓冲区的指针到BufPtr,并且清除Name串。
例如,假定四个设备接口函数依次为DevOpen、DevInOut、DevFlush和DevClose,那么Assign过程可以如下定义:
procedure AssignDev(var F: Text);
begin
with TTextRec(F) do
begin
Mode := fmClosed;
BufSize := SizeOf(Buffer);
BufPtr := @Buffer;
OpenFunc := @DevOpen;
InOutFunc := @DevInOut;
FlushFunc := @DevFlush;
CloseFunc := @DevClose;
Name[0] := #0;
end;
end;
设备接口函数可以使用文件记录中的UserData字段来存储私有信息。该字段在任何时候都不能由产品文件系统修改。
怎么使用呢?谁能给我个例子啊,谢谢