我编写了一个 Delphi 函数,将 .dat 文件中的数据加载到字符串列表中。然后它解码字符串列表并分配给一个字符串变量。字符串的内容使用“#”符号作为分隔符。
我怎样才能获取这个字符串的内容,然后将其内容分配给局部变量?
// Function loads data from a dat file and assigns to a String List.
function TfrmMain.LoadFromFile;
var
index, Count : integer;
profileFile, DecodedString : string;
begin
// Open a file and assign to a local variable.
OpenDialog1.Execute;
profileFile := OpenDialog1.FileName;
if profileFile = '' then
exit;
profileList := TStringList.Create;
profileList.LoadFromFile(profileFile);
for index := 0 to profileList.Count - 1 do
begin
Line := '';
Line := profileList[Index];
end;
end;
解码后,var "Line" 包含如下所示的内容:
例子:
Line '23#80#10#2#1#...255#'.
并非分隔符之间的所有值都具有相同的长度,并且每次调用函数 LoadFromFile 时,“Line”的值都会有所不同(例如,有时一个值可能只有一个数字接下来的两个或三个等,所以我不能依赖字符串或数组的复制函数)。
我试图找出一种循环遍历“Line”内容的方法,将其分配给名为“buffer”的局部变量,然后如果遇到“#”,则将缓冲区的值分配给局部变量,将缓冲区重新初始化为'';然后移动到“Line”中的下一个值,重复下一个参数的过程,每次忽略“#”。
我想我一直在纠结这个问题太久了,我似乎无法取得任何进展,需要休息一下。如果有人愿意看一看,我会欢迎任何关于如何实现这一目标的建议。
非常感谢
KD