请教,在delphi有没有比writeln更快的写文件的方法?
谢谢

解决方案 »

  1.   

    这个问题有点笼统了
    你是嫌writeln一行一行写太慢?
    可以试试文件流
      

  2.   

    xiexie
    整个流写入怎么做呢?
      

  3.   

    我是从数据库里select出来,很多字段,然后要把这些字段值拼接起来,然后writeln
    这个字符串相加的过程就很慢,有没有什么好的办法,快速地写字段到文本文件中?
    谢谢
      

  4.   

    var
      stream: TMemoryStream;
      str: string;
    begin
      str:= 'hello world';//你拼接的字符串
      stream:= TMemoryStream.Create;
      stream.Write(pchar(str)^,length(str));
      stream.SaveToFile('c:\123.dat');
      stream.Free;
    end;
      

  5.   

    谢谢hongqi162
    但是我发现 字符串1+字符串2+字符串3+字符串N 非常慢,有没有什么好办法
      

  6.   

    接月亮的var
      List:TStringList;
    begin
      List:=TStringList.Create;
      List.Add('abcdefg');
      List.Add('hijklmn');
      List.Add('opqrstu');
      List.Add('vwxyz');
      List.SaveToFile('c:\1.txt');
    end;TStringList的Add间有#13#10,会换行
      

  7.   

    谢谢,我是这样的
             Close;
             SQL.Clear;
             SQL.Add('select * from table');
             Open;
             while not ADOQuery1.eof do
               begin
                 Writeln(FText,ADOQuery1.fieldbyname('name').asstring+ADOQuery1.fieldbyname('class').asstring+ADOQuery1.fieldbyname('score').asstring);
                 Next;
               end;
             Close;
           end;
      

  8.   

    Close;
            SQL.Clear;
            SQL.Add('select name+class+... as s from table');//数据库返回结果的时候进行累加
            Open;
            while not ADOQuery1.eof do
              begin
                Writeln(FText,ADOQuery1.fieldbyname('s').asstring);
                Next;
              end;
            Close;
          end;
      

  9.   

    字符串1+字符串2+字符串3+字符串N 在delphi的机制中每加一次字符串就会重新开辟空间,重新生成新的字符串建议不要使用string使用pchar一次性开辟空间,然后填充