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;
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; 説明:一行一行向文件中写、不会占用太大内存。
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;
一记录一文件 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;
writeln(f,adoquery1.fieldbyname('a').asstring+','+adoquery1.fieldbyname('b').asstring);
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;
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; 説明:一行一行向文件中写、不会占用太大内存。
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;
assignfile(f,path)
writeln楼上的都是很好的例子
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;