adodataset的数据(数据量较大)
1、如何读出生成特定格式的TXT文本文件?
2、如何读出生成特定格式的XML文件?
最好有代码说明

解决方案 »

  1.   

    最简单的办法是用TStringList来实现,先读取到stringlist中,然后再stringlist.savetofile就可一了
      

  2.   

    同意楼上的意见,给个函数
    function TFrmMain.AddXMLSign(Fld,Valstr:String):String;
    begin
      Result:='<'+Fld+'>'+Valstr+'</'+Fld+'>';
    end;给点代码:
      //循环生成XML
      while not DM0734.QTemp.Eof do
      begin   Application.ProcessMessages;
       Label1.Caption :=rsToXML;
       Label2.Caption :=inttostr(i);
       Label3.Caption :=rsFrom;
       Label4.Caption := FieldByName('BATCHNBR').AsString;   //描述处理
         Desc:=FieldByName('JNLDTLDESC').AsString;
         Desc:=replacer('''',' ',Desc);
         Desc:=replacer('&',' And ',Desc);   //生成GLBCTL的数据
       if FieldByName('BATCHNBR').AsString<>batch then
       begin
           iBCH:=iBCH+1;
           With lBCTL do
           begin
              Add('<Origin_BATCH-'+FieldByName('BATCHNBR').AsString+'>');
              Add(AddXMLSign('BATCHID',inttostr(iBCH)));
              Add(AddXMLSign('AUDTDATE',Formatdatetime('YYYY-MM-DD',HBSDate)));
              Add(AddXMLSign('AUDTTIME',FieldByName('AUDTTIME').AsString));
              Add(AddXMLSign('AUDTUSER',HBSUser));
              Add(AddXMLSign('AUDTORG',FieldByName('AUDTORG').AsString));
              Add(AddXMLSign('ACTIVESW','1'));
              Add(AddXMLSign('BTCHDESC','From_'+HBSCONAME+'_'+FieldByName('BATCHNBR').AsString));
              Add(AddXMLSign('SRCELEDGR',FieldByName('SRCELEDGER').AsString));
              Add(AddXMLSign('DATECREAT',Formatdatetime('YYYY-MM-DD',HBSDate)));
              Add(AddXMLSign('DATEEDIT',Formatdatetime('YYYY-MM-DD',HBSDate)));
              Add(AddXMLSign('BATCHTYPE','3'));
              Add(AddXMLSign('BATCHSTAT','1'));
              Add(AddXMLSign('POSTNGSEQ',inttostr(iBCH)));
              Add(AddXMLSign('DEBITTOT',CurrtoStr(BTDebit)));
              Add(AddXMLSign('CREDITTOT',CurrtoStr(BTCredit)));
              Add(AddXMLSign('QTYTOTAL',FieldByName('TRANSQTY').AsString));
              Add(AddXMLSign('ENTRYCNT',inttostr(iJEH+1)));
              Add(AddXMLSign('NEXTENTRY',inttostr(i)));
              Add(AddXMLSign('ERRORCNT','0'));
              Add(AddXMLSign('ORIGSTATUS','0'));
              Add('</Origin_BATCH-'+FieldByName('BATCHNBR').AsString+'>');
           end;
           BTDebit:=0;BTCredit:=0;
           iJEH:=0;
       end;
    .....