以下是我的测试算法:
procedure TForm1.Button2Click(Sender: TObject);
var
testfile:textfile;
begin
query1.open;
query1.First;
if savedialog1.Execute then begin
assignfile(testfile,savedialog1.FileName+'.txt');
rewrite(testfile);
while not query1.Eof do
begin
writeln(testfile,query1.fields[0].asstring+' '+query1.fields[1].asstring+' '+datetostr(query1.fields[2].asdatetime));
query1.Next;
end;
closefile(testfile);
end;
end;
这样测试后,是可以正确转为txt文件,可是就是同一列无法对齐(如左对齐)。
请看结果值:
1130137392 林斌 01-04-24
1130140150 游合平 01-03-12
..........
请高手指点!
谢谢!
procedure TForm1.Button2Click(Sender: TObject);
var
testfile:textfile;
begin
query1.open;
query1.First;
if savedialog1.Execute then begin
assignfile(testfile,savedialog1.FileName+'.txt');
rewrite(testfile);
while not query1.Eof do
begin
writeln(testfile,query1.fields[0].asstring+' '+query1.fields[1].asstring+' '+datetostr(query1.fields[2].asdatetime));
query1.Next;
end;
closefile(testfile);
end;
end;
这样测试后,是可以正确转为txt文件,可是就是同一列无法对齐(如左对齐)。
请看结果值:
1130137392 林斌 01-04-24
1130140150 游合平 01-03-12
..........
请高手指点!
谢谢!
begin
DbgridToTxt(dbgrid1);
end;
procedure Tform1.DbgridToTxt(source:Tobject);
var
filename:Textfile;
Dataset:Tdataset;
titlestr,valuestr,tempstr:string;
counter:integer;
begin
if (source is Tdbgrid)then
Dataset:=Tdbgrid(source).DataSource.DataSet
else
Dataset:=TDataset(source);
if ((Dataset.IsEmpty)or(not Dataset.Active))then
exit else
begin
Dataset.DisableControls;
Dataset.First;
if savedialog1.Execute then
begin
assignfile(filename,savedialog1.FileName);
rewrite(filename);
for counter:=0 to Dataset.FieldCount-1 do
titlestr:=titlestr+char(9)+Dataset.Fields[counter].DisplayLabel;
titlestr:=trim(titlestr);
writeln(filename,titlestr);
while not Dataset.Eof do
begin
valuestr:='';
for counter:=0 to Dataset.FieldCount-1 do
begin
tempstr:=Dataset.Fields[counter].Text;
valuestr:=valuestr+char(9)+tempstr;
end;
valuestr:=trim(valuestr);
writeln(filename,valuestr);
Dataset.Next;
end;
closefile(filename);
end;
Dataset.EnableControls;
end;
end;