delphi无类型文件
无类型文件
文本文件和类型文件的字节数可以通过代码得到,但不是所有的文件都能做到,例如RTF 文件。虽然RTF 文件中也包含文本文件,但是它还有其他的格式属性,所以需要使用识别RTF 格式的编辑器才可以进行浏览。
无类型文件是由数据块序列组成的,每个数据块为128 字节大小的数据。无类型文件数据的读写操作可以利用数据块实现。无类型文件的操作步骤与文本文件的操作步骤基本相同,其操作方法也与前面两种文件的操作方法基本相同,只是调用的函数略有差异。
下面利用一个示例来说明如何利用数据块将内容全部为“Y”的字符串写到无类型文件中,并将其读出显示在Memo 中。
(1)新建一个工程。在窗体中添加一个Memo 组件和两个Button 组件。两个Button 组件的Caption 属
性分别为“读取”和“写入”。
(2)“读取”按钮代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
UnTypedFile:file;
Buf:array [0..128] of byte;
Num,I:Integer;
Str:String;
begin
AssignFile(UnTypedFile,’UnTypedFile.dat’);
Reset(UnTypedFile);
try
BlockRead(UnTypedFile,Buf,1,Num);
for I:=0 to 128 do
Str:=Str+VarToStr(char(Buf[I]));
Memo1.Lines.Add(Str);
finally
CloseFile(UnTypedFile);
end;
end;
(3)“写入”按钮代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var
UnTypedFile:file;
Buf:array[0..128] of byte;
Num:Integer;
begin
AssignFile(UnTypedFile,’UnTypedFile.dat’);
Reset(UnTypedFile);
if FileExists(’UnTypedFile.dat’) then
Reset(UnTypedFile)
else
Rewrite(UnTypedFile);
try
Seek(UnTypedFile,FileSize(UnTypedFile)); //Seek 使文件指针的位置位于末尾
FillChar(Buf,SizeOf(Buf),’Y’);
BlockWrite(UnTypedFile,Buf,1,Num);
finally
CloseFile(UnTypedFile);
end;
end;