二楼说的是一种方法 也可以直接读 str:='1,0,0,0,5.1025999999999998,12.156499999999999'; for i:=1 to length(str) do begin tmpstr:=''; if str[i]<>',' then tmpstr:=tmpstr+str[i]; .......................... end;
var SL: TStringlist; begin SL := TStringlist.Create; try SL.CommaText := '1,0,0,0,5.1025999999999998,12.156499999999999'; showmessage(sl[0]); showmessage(sl[1]); showmessage(sl[4]); finally SL.free; end; end;
取出控制字符串分割的字符.txtfunction GetString(const str,ctlstr : string): Tstrings; var strl : Tstrings; i : integer; s : string; substr : string; begin s := str; if length(trim(s)) = 0 then exit; strl := Tstringlist.Create; i := pos(ctlstr,S); while i > 0 do begin substr := copy(s,1,i-1); strl.Add(substr); Delete(S,1,i); i := pos(ctlstr,s); end; result := strl; end;procedure TForm1.Button1Click(Sender: TObject); var str : string; i : integer; strl : Tstrings; begin str := '1234#4567#3456#2345#'; strl := Tstringlist.Create; Strl := Getstring(str,'#'); for i := 0 to strl.Count - 1 do begin showmessage(strl.Strings[i]); end;end;
memo1.Text:=stringreplace('1,0,0,0,5.1025999999999998,12.156499999999999',',',#13#10,[rfReplaceAll]);
第一个实数为:strtofloat(memo1.Lines.Strings[0]),第二个褛为:strtofloat(memo1.Lines.Strings[1]),依此类推.
也可以直接读
str:='1,0,0,0,5.1025999999999998,12.156499999999999';
for i:=1 to length(str) do
begin
tmpstr:='';
if str[i]<>',' then
tmpstr:=tmpstr+str[i];
..........................
end;
SL: TStringlist;
begin
SL := TStringlist.Create;
try
SL.CommaText := '1,0,0,0,5.1025999999999998,12.156499999999999';
showmessage(sl[0]);
showmessage(sl[1]);
showmessage(sl[4]);
finally
SL.free;
end;
end;
var
strl : Tstrings;
i : integer;
s : string;
substr : string;
begin
s := str;
if length(trim(s)) = 0 then
exit;
strl := Tstringlist.Create;
i := pos(ctlstr,S);
while i > 0 do
begin
substr := copy(s,1,i-1);
strl.Add(substr);
Delete(S,1,i);
i := pos(ctlstr,s);
end;
result := strl;
end;procedure TForm1.Button1Click(Sender: TObject);
var
str : string;
i : integer;
strl : Tstrings;
begin
str := '1234#4567#3456#2345#';
strl := Tstringlist.Create;
Strl := Getstring(str,'#');
for i := 0 to strl.Count - 1 do
begin
showmessage(strl.Strings[i]);
end;end;