搜索
写经验 领红包
 > 生活

无类型指针是什么意思(无类型标识符是指)

导语:「9.键盘鼠标和文件编程」6.无类型文件编程

6.无类型文件编程

无类型文件是指没有固定的数据结构,可以由使用者决定每条记录的长度。声明格式:

var <变量>: file;
6.1打开无类型文件

对于无类型文件使用 Reset 和 Rewrite 打开时,需要提供参数 RecSize: Word,用来确定数据记录长度,默认为128B。

有类型文件的长度的是固定的,无类型文件的长度是自定义的。

6.2读取无类型文件

无类型文件使用 BlockRead 过程进行读取操作,格式如下:

procedure BlockRead(var F: File; var Buf; Count: Integer[; var AmtTransferred: Integer]);

其中:

F - 无类型文件变量Buf - 用于存储读取的数据Count - 指定读取的记录数量AmtTransferred - 返回实际读取的记录数量,一般情况下,与 Count 相同,但当读取文件末尾或磁盘满的情况下,该值会小于 Count。6.3无类型文件写入

无类型文件使用 BlockWrite 过程进行写入操作,格式如下:

procedure BlockWrite(var F: File; var Buf; Count: Integer[; var AmtTransferred: Integer]);
6.4无类型文件读写示例

示例:将 Memo 组件中的数据写入到无类型文件中,并可以读取文件内容在 Memo 组件中展现。界面如下图:

示例代码:

procedure TForm1.Button1Click(Sender: TObject);var  F: File;  FileName: string;  Buf: String[16];begin  // 打开  Memo1.Clear;  if OpenDialog1.Execute then  begin    FileName := OpenDialog1.FileName;    AssignFile(F, FileName);    Reset(F, 16);    while not Eof(F) do    begin      BlockRead(F, Buf, 1);      Memo1.Lines.Add(Buf);    end;    CloseFile(F);  end;end;procedure TForm1.Button2Click(Sender: TObject);var  F: File;  FileName: string;  i: Integer;  Buf: String[16];begin  // 保存  if SaveDialog1.Execute then  begin    FileName := SaveDialog1.FileName;    AssignFile(F, FileName);    Rewrite(F, 16);    for i := 0 to Memo1.Lines.Count do    begin      Buf := Memo1.Lines.Strings[i];      BlockWrite(F, Buf, 1);    end;    CloseFile(F);  end;end;procedure TForm1.Button3Click(Sender: TObject);begin  // 退出  Close;end;

运行效果:

本文内容由小林整理编辑!