> 生活
无类型指针是什么意思(无类型标识符是指)
导语:「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;
运行效果:
本文内容由小林整理编辑!