delphi 用record结构读取记录文件的问题

2024-11-22 05:47:44
推荐回答(2个)
回答1:

不清楚你最终目的,如果只是为了保存这个内容,其实这个问题用record数组,还是用变长二维数组都是一样的,比如说有一个变长二维数组
B: Array Of Array Of Integer;
你就从这个txt第一个字节开始挨个读(或者一次读入后从第一个字节开始),比如说有一个n用于密文条数的统计,m为每条密文字节数。
基本上就如下流程

1.读入02,2存入m
2.n加1
3.SetLength(B, n); SetLength(B[n], m);
4.读入m个字节到B[n-1][0]至B[n-1][m-1] //二维是这么写的吧,delphi好多年不用了。
5.再次循环直接结束

这样得到的就是一个形如
3D 3E
23 44 DF 2E

这样的一个锯齿状二维数组
当然,如果用record的话(比如说你要存储更多的信息,比如每条数据长度,明文等等),你也完全可以将上面的每一行信息存入一个record中,最终得到的是一个record数组。

回答2:

这是典型的文本文件,啥时候成记录文件了。直接当字符串读出来不就行了,然后再对字符串进行处理。
procedure TForm1.Button1Click(Sender: TObject);
var
fn, s: string;
f: TextFile;
i: Integer;
begin
fn := 'hex.txt';
AssignFile(f, fn);
Reset(f);
Read(f, s);
CloseFile(f);
for i := 1 to Length(s) do
if s[i] in ['0'..'9', 'A'..'Z', 'a'..'z'] then
{ 你爱怎么处理就怎么处理 }
end;