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

ATGC 2009-08-05 09:08:13
请教,在delphi有没有比writeln更快的写文件的方法?
谢谢
...全文
236 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ok1411 2009-08-06
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 hongqi162 的回复:]
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;
[/Quote]
up
funxu 2009-08-06
  • 打赏
  • 举报
回复
字符串1+字符串2+字符串3+字符串N 在delphi的机制中每加一次字符串就会重新开辟空间,重新生成新的字符串建议不要使用string使用pchar一次性开辟空间,然后填充
Princezhouf 2009-08-05
  • 打赏
  • 举报
回复
单独写个过程 或者在数据库操作的时候直接加进去
ATGC 2009-08-05
  • 打赏
  • 举报
回复
有很多字段,50个字段
ATGC 2009-08-05
  • 打赏
  • 举报
回复
谢谢,我是这样的
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;
hongqi162 2009-08-05
  • 打赏
  • 举报
回复
你举个例子,你的字段内容是怎么加的
Princezhouf 2009-08-05
  • 打赏
  • 举报
回复
接月亮的

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,会换行
ATGC 2009-08-05
  • 打赏
  • 举报
回复
谢谢hongqi162
但是我发现 字符串1+字符串2+字符串3+字符串N 非常慢,有没有什么好办法
hongqi162 2009-08-05
  • 打赏
  • 举报
回复
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;
sanguomi 2009-08-05
  • 打赏
  • 举报
回复
TSTRINGS或流
ATGC 2009-08-05
  • 打赏
  • 举报
回复
我是从数据库里select出来,很多字段,然后要把这些字段值拼接起来,然后writeln
这个字符串相加的过程就很慢,有没有什么好的办法,快速地写字段到文本文件中?
谢谢
ATGC 2009-08-05
  • 打赏
  • 举报
回复
xiexie
整个流写入怎么做呢?
SuperTitan001 2009-08-05
  • 打赏
  • 举报
回复
这个问题有点笼统了
你是嫌writeln一行一行写太慢?
可以试试文件流
bdmh 2009-08-05
  • 打赏
  • 举报
回复
整个流写入
renrjs 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 hongqi162 的回复:]
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;
[/Quote]
up
hongqi162 2009-08-05
  • 打赏
  • 举报
回复
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;
taixinltd 2009-08-05
  • 打赏
  • 举报
回复
CreateFile
WriteFile
ATGC 2009-08-05
  • 打赏
  • 举报
回复
up

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧