双重循环(0分)

  • 主题发起人 主题发起人 babyrun
  • 开始时间 开始时间
B

babyrun

Unregistered / Unconfirmed
GUEST, unregistred user!
两个文件表,Tstringlist类型其中各有数据数条
其中一个
aaaa bbbb cccc
2000 1234 123.54
2000 2345 123.00

另一个
2000 1234 123.00
2000 2345 254.00
2000 3456 121.00
程序实现两个表的累加,把第一个表的各条数据同第二各表的各条数据相比较。如果bbbb字段值相同则将两个相同字段的cccc字段值相加,然后做为最终标的第一条数据,以此类推。如果第二个表中的bbbb字段同第一个表的任何一条数据的相应字段都不同,则将其添加到最终表中。
最终生成的表的形式应如下表:
2000 1234 246.54
2000 2345 377.00
2000 3456 121.00
我被双重循环搞晕了,请各位指教一二。不胜感激!!!
 
把你的代码贴出来看看。
 
fCount := FinalList.Count;
RCount := Resultstring.Count;
for j := 0 to fCount-1do
begin
fstr := FinalList.Strings[j];
code := copy(fstr,16,4);
if (code = ' ') and (RCount <> 0) then
begin
fmoneyno := copy(fstr,41,25);
fnetno := copy(fstr,11,4);
for y := 0 to RCount-1do
begin
Rnetno := copy(Resultstring.Strings[y],11,4);
if fnetno = Rnetno then
begin
Rmoneyno := copy(Resultstring.Strings[y],41,25);
fSum := getfloat(Rmoneyno) + getfloat(fmoneyno);
sTmp := addLeftZero('3400',9) + addLeftZero(fnetno,5) + addLeftZero(getstr(fsum),51);
Resultstring.Add(sTmp);
end ;
end;
Resultstring.Add(fstr);
end;
if (code = ' ') and (RCount = 0) then
begin
Resultstring.Add(fstr);
RCount := RCount + 1;
end;

end;
FinalList.SaveToFile('d:/fina.txt');
//当天结果表
Resultstring.SaveToFile('d:/Result.txt');
//最终结果表
MessageDlg('请核对文件',mtInformation,[mbOK],0);
sFileList.Free;
stmpList.Free;
FinalList.Free;
end;
 
是有点头晕!如果是数据库的话,用SQL的 select aaaa,bbbb,sum(cccc) from (select * from table_a union select * from table_b) group by aaaa,bbbb 一句就搞定!这个东西嘛我也会晕的!恐怕帮不上忙了![:(]
 
我给你一段代码,你参考一下,我用两个表lsk和pbb,我让这两个表比较如果pbbh相同,则进行字段值的替换。
data1.lsk.Open;
data1.lsk.First;
while not data1.lsk.Eofdo
begin
x:=data1.lskPBBH.Value;
data1.pbb.Open;
data1.pbb.First;
while not data1.pbb.Eofdo
begin
if data1.pbbPBBH.Value<>x then
begin
data1.pbb.Next;
end else
begin
data1.pbb.Edit;
data1.pbbGDL.Value:=data1.lskPBDL.Value;
data1.pbbBSDL.Value:=data1.lskTTXDL.Value;
break;
end;
end;
data1.lsk.Next;
end;
 
接受答案了.
 

Similar threads

回复
0
查看
885
不得闲
回复
0
查看
1K
不得闲
S
回复
0
查看
859
SUNSTONE的Delphi笔记
S
S
回复
0
查看
784
SUNSTONE的Delphi笔记
S
后退
顶部