一般情况下,这样写没问题
    assignfile(filename,'c:\aaa.TXT');
    rewrite(filename) ;
     with ADOQuery2 do
      begin
       first;
        while not eof do
         begin
         str1:=fieldbyname('编号').asstring;
          str2:=fieldbyname('应收费').AsString ;
          str4:=fieldbyname('姓名').AsString ;
          str3:=fieldbyname('情况).asstring;
          writeln(filename,'"'+str1+'","'+str3+'","'+str4+'",'+str2);
          ADOQuery2.Next;
          end;
        end;
   closefile(filename);
出来的结果:
    "1","10","SSS","XXX"
    "2","20","郁郁","FFF"但是因为写出的编号,姓名等字段的位置会发生改变
我用一个表记录了AAA:='"'+str1+'","'+str3+'","'+str4+'",'+str2;
再写出时上面的writeln(filename,'"'+str1+'","'+str3+'","'+str4+'",'+str2);
改成writeln(filename,AAA);
 但出来结果变成了
'"'+str1+'","'+str3+'","'+str4+'",'+str2
要怎么样写才对

解决方案 »

  1.   


     writeln(filename,Str1+','+str3+','+str2+','.....); 
     用STRINGLIST也可以
      var A :STRINGs 
      a := TStringlist.create; 
      A.ADD(STR1+',');
      A  .ADD(STR2+',');
      a.savetofile('c:\text.txt');
      a.free;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      filename: TextFile;
      str1,str2,str3,str4: string;
    begin
        assignfile(filename,'c:\aaa.TXT');
        rewrite(filename) ;
        for i:=0 to 100 do
        begin
        str1:=inttostr(i);
        str2:='str2-'+inttostr(i);
        str3:='str3-'+inttostr(i);
        str4:='str4-'+inttostr(i);
        writeln(filename,'"'+str1+'","'+char(vk_tab)+str3+'","'+char(vk_tab)+str4+'",'+char(vk_tab)+str2);
        end;
        closefile(filename);
    end;
      

  3.   

    楼上的,我的意思是写出的编号,姓名等字段内容,有时候根据要求要掉换它们的位置
    如现在写出的是:编号,姓名,情况,收费
    以后它可能要求写出来的顺序是:姓名,情况,编号,收费
    所以我想把写出来的字段存到另外一个表中的字段AAA中,要改顺序的时候直接改那个表AAA的内容
    AAA:='"'+str1+'","'+str3+'","'+str4+'",'+str2;
    然后在这导出的时候就调用它
    原写定的顺序       writeln(filename,'"'+str1+'","'+str3+'","'+str4+'",'+str2); 
    写出的结果
        "1","10","SSS","XXX" 
        "2","20","郁郁","FFF"
    是对的
    现在我想调用writeln(filename,AAA); 
    但是AAA变成了字符
    写出来的结果就变成
    '"'+str1+'","'+str3+'","'+str4+'",'+str2 
    请问要做成这样的功能有什么好方法
      

  4.   

    这也没有什么呀,str1,str2,str3,str4都是变量,你在取值时,根据你的表中的顺序去取
    如果比如表中是编号,姓名,情况,收费 则str1=编号的值,str2=姓名的值。
    如果表中的顺序变了姓名,情况,收费,编号,你的str1=姓名的值,。。
    这样就行了,也就是说你所变的只是在给str1,str2,str3,str4赋值时取的顺序是变化的
    不知我这样说的是否明白呢