var
i,j:integer;
begin
mmo2.Lines.Clear;
if Temp=nil then
Temp:=TStringList.Create();
Temp.loadfromfile('D:\Data.dat');
j:=Temp.Count;
Temp.Delimiter := '|';
for i:=5 to j-2 do
begin
Temp.DelimitedText :=trim(Decrypt(Temp.strings[i],PASS));
mmo2.Lines.Add(Temp.Text);
end;
end;第一次可以把第5行的数据读出来,但是第二次去读第6行时,提示错误了。请问如何把数据循环取出来,并赋值给变量。数据格式如下:
8:00|23.1|0.00|110|135|103.64|
8:10|25.1|0.07|160|175.6|10.64|如何把他们取出来并把8:00赋值给变量A,23.1赋值给变量B依此类推
i,j:integer;
begin
mmo2.Lines.Clear;
if Temp=nil then
Temp:=TStringList.Create();
Temp.loadfromfile('D:\Data.dat');
j:=Temp.Count;
Temp.Delimiter := '|';
for i:=5 to j-2 do
begin
Temp.DelimitedText :=trim(Decrypt(Temp.strings[i],PASS));
mmo2.Lines.Add(Temp.Text);
end;
end;第一次可以把第5行的数据读出来,但是第二次去读第6行时,提示错误了。请问如何把数据循环取出来,并赋值给变量。数据格式如下:
8:00|23.1|0.00|110|135|103.64|
8:10|25.1|0.07|160|175.6|10.64|如何把他们取出来并把8:00赋值给变量A,23.1赋值给变量B依此类推
//把字符串以分隔符分开
procedure DivideString(str,separate:string;var str_list:TStringList);
var
position:integer;
strTemp :string;
begin
while length(str)>0 do
begin
position:=pos(separate,str);
if position=0 then position:=length(str)+1;
strTemp:=copy(str,1,position-1);
str_list.Add(strTemp);
delete(str,1,position);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
l : tstringlist;
begin
l := tstringlist.Create;
DivideString('8:00|23.1|0.00|110|135|103.64|', '|', l);
memo1.Text := l.Text;
l.Free;
end;
分割完直接赋值,要不就用类型转换函数将String转换成你想要的类型。
循环的意思是将第一行
8:00|23.1|0.00|110|135|103.64|
赋值给A,B,C,D,E,F变量
然后读第二行
8:10|25.1|0.07|160|175.6|10.64|
再次赋值给A,B,C,D,E,F变量
List := TStringList.Create;
List.Delimiter := '|' ;
List.DelimitedText := 'aaa|bbb|ccc|ddd' ;
如果你每行的数据的个数是死的
while j<list.count-1 do
begin
for i:=j to j+6 do
begin
//变量赋值
A:=list[i];
end
j:=J+6
end
List : tstringlist;
i,j:Integer;
begin
List := tstringlist.Create;
if Temp=nil then
Temp:=TStringList.Create();
Temp.loadfromfile('D:\Data.dat');
j:=Temp.Count;
List.Delimiter := '|' ;
for i:=5 to j-1 do
begin
List.Clear;
List.DelimitedText :=trim(Decrypt(Temp.strings[i],PASS));
//数据赋值
A:=List.Strings[0];
B:=List.Strings[1];
C:=List.Strings[2];
D:=List.Strings[3];
E:=List.Strings[4];
F:=List.Strings[5];
end;
List.Free;
end;