把ADOQuery1查询到的数据里的内容导出到文本文件,每个字段用逗号间隔分开,怎么做呢,可以做吗

解决方案 »

  1.   

    可以的,首先找出所有满足条件的记录,创建一个文本文件,然后循环的写入就可以了
    writeln(f,adoquery1.fieldbyname('a').asstring+','+adoquery1.fieldbyname('b').asstring);
      

  2.   

    var
      i: Integer;
      slist: TStringList;
    begin
      slist := TStringList.Create;
      adoQuery.First;
      for i := 0 to adoQuery.Recordcount - 1 do
      begin
        sList.Add(adoQuery.FieldByName('1').AsString + ',' + adoQuery.FieldByName('1').AsString);
        adoQuery.Next;
      end;
      slist.SaveToFile('aa');
    end;
      

  3.   

    var 
      FileName: string;
      F: TextFile;
      LineStr: String;
    begin
      FileName := GetCurrentDir+'\exp.csv'; //建文件
      if not DirectoryExists(FileName) then
        if not CreateDir(FileName) then
          raise Exception.Create('失敗!'+ FileName);  AssignFile(F, FileName);
      Rewrite(F);
      
      with Query1 do begin
        Close;
        Prepare;
        Open;
        
        While not Eof do begin
          LineStr := FieldByName('Code').AsString + ',';  //一行
          LineStr := LineStr + FieldByName('Name').AsString + ',';
          {...}
          LineStr := LineStr + #13 + #10;
          Write(F,LineStr);
          Next;
        end;
      end;
      
      CloseFile(F);  
    end;      説明:一行一行向文件中写、不会占用太大内存。
      

  4.   

    while not query5.Eof do
       begin
        str_all:=inttostr(count);
        str_id:=query5.Fields[0].Asstring;
        str_name:=query5.Fields[1].Asstring;
        str_taxableincome:=query5.Fields[2].Asfloat;
        str_amount:=query5.Fields[3].Asfloat;
        Str_all:=Str_all+'  |  '+str_id+'  |  '+str_name+'  |  '+floattostr(str_taxableincome)+'  |  '+floattostr(str_amount);
        writeln(f,Str_all);
        writeln(f,str_empty) ;
        count:=count+1;    query5.Next;
      end;
       closefile(f);
      MessageBox(Handle,'文件生成完毕','信息',MB_OK+MB_ICONINFORMATION);  end;
      

  5.   

    多数情况下都用  F: TextFile;
    assignfile(f,path)
    writeln楼上的都是很好的例子
      

  6.   

    一记录一文件
    var
      i: Integer;
      slist: TStringList;
    begin
      slist := TStringList.Create;
      adoQuery.First;
      for i := 0 to adoQuery.Recordcount - 1 do
      begin
        sList.clear;
        sList.Add(adoQuery.FieldByName('1').AsString + ',' + adoQuery.FieldByName('2').AsString);
        slist.SaveToFile(inttostr(i));
        adoQuery.Next;
      end;  
    end;