delphi文本数据处理

来源:百度知道 编辑:UC知道 时间:2024/06/07 19:06:11
请教一个dephi问题,我有一个文本文档,想把里面的每行6个数据通过一定公式计算后的结果输出成一个新的文本文档,文档大小约为10M
输出文件每行为5个数据,源文本每行6个数据,格式为
……
31: oL[1153]( x[/-62.8] y[/-8.3] z[/-10.3] u[/-0.66175835] v[/-0.57149924] w[/0.48524684] )
31: oL[1154]( x[/-62.7] y[/-8.6] z[/-10.1] u[/-0.66189173] v[/-0.57494751] w[/0.48097265] )
31: oL[1155]( x[/-62.6] y[/-8.9] z[/-10] u[/-0.66197151] v[/-0.57849393] w[/0.47659049] )
……
每一行读中括号里面的数据,把其中的x, y, z, u, v,w 赋给不同的变量,
这六个变量通过一些公式计算得出五个变量,比如H=x+y,I=u-z,J=v*w,K=x/y,L=w/z,
然后这五个变量输出的格式为
……
GB H1.0 I40.824 J7.735 K.736 L35
GB H2.12 I10.994 J17.335 K2.866 L66
GB H10.50 I20.887 J71.643 K10.931 L2
……
的文本
小数点精确到0.001
如果源文本中某一行缺少某一个变量的值则沿用先前行的值

procedure TForm1.Button2Click(Sender: TObject);
var
ls:TStringList; //读源文本,一行六个数据,空格隔开 c:\1.txt
ld:TStringlist; //目的文本,存放结果,与源文本行对应 c:\2.txt

scal:TStringlist; //计算用
i,j:integer; //遍历计算
sum:double;
begin
ls:=TStringList.Create;
ld:=TStringList.Create;
scal:=TStringList.Create;

ls.LoadFromFile('c:\1.txt'); //载入远文本

for i:=0 to ls.Count-1 do
begin
scal.CommaText:=ls.Strings[i];
sum:=0;
for j:=0 to scal.Count-1 do // sum:=sum+strtofloat(scal.Strings[j]);
ld.Add(floattostr(sum));
end;
ld.SaveToFile('c:\2.txt');

ls.Free;
ld.Free;
scal.Free;
end;

不是很明白,UP