我得到了一个旧项目的源代码并且不得不改变一些小事情,但我遇到了大麻烦,因为只有 delphi 2010 可以做到这一点。
定义了一条记录:
bbil = record
path : string;
pos: byte;
nr: Word;
end;
稍后此定义用于从文件中读取:
b_bil: file of bbil;
pbbil: ^bbil;
l_bil : tlist;
while not(eof(b_bil)) do
begin
new(pbbil);
read(b_bil, pbbil^);
l_bil.add(pbbil);
end
主要问题是,编译器不接受记录中的“字符串”类型,因为他想要“最终化”。所以我尝试将“string”更改为“string[255]”或“shortstring”。执行此操作的应用程序正在读取文件但内容错误。
我的问题是如何将用于写入文件的旧“字符串”类型转换为 Delphi 2010 中的“新”类型。
我已经尝试了很多,例如“{$H-}”。在记录中仅添加一个字符显示,该文件是正确的,因为文件读取几乎正确,但每个数据集又截断了一个字符 - lengthbyte+255chars 的长度似乎是正确的 fpr 定义但短字符串不匹配。