Delphi DBGrid 保存TXT

function TForm1.DBGridToTxt(aDBGrid:TDBGrid;isTitle:boolean):boolean;
var
 s:string;

 FileName:string;
 sTemp:TSTrings;
 i : integer;
 j : integer;
 SFD:TSaveDialog;
 RecNo:integer;
begin
  SFD:=TSaveDialog.Create(nil);
  SFD.Filter:='文本文件|*.TXT';
   SFD.DefaultExt := '.TXT';

   sTemp := TStringList.Create;
   try
 if SFD.Execute then
 Begin
 FileName := SFD.FileName;
 if isTitle then // 带标题
 begin
 s := '';
 for i := 0 to aDBGrid.Columns.Count-1 do
 begin
 if aDBGrid.Columns[i].Visible then
 s := s + Format('%s'+
 '|',[aDBGrid.columns[i].title.caption]);
 end;
 sTemp.Add(s);
 end;
 RecNo := aDBGrid.DataSource.DataSet.RecNo;
 aDBGrid.DataSource.DataSet.DisableControls;
 aDBGrid.DataSource.DataSet.First;
 while not aDBGrid.DataSource.DataSet.Eof do
 begin
 s := '';
 for j:=0 to aDBGrid.Columns.Count-1 do
 begin
 if aDBGrid.Columns[j].Visible then
 s := s + Format('%s',[aDBGrid.DataSource.DataSet.FieldByName(
 aDBGrid.Columns[j].FieldName).asString])+'|';
 end;
 sTemp.Add(s);
 sTemp.Add('');
 aDBGrid.DataSource.DataSet.Next;
 end;
 sTemp.SaveToFile(FileName);
 aDBGrid.DataSource.DataSet.RecNo := RecNo;
 aDBGrid.DataSource.DataSet.EnableControls;
 end;
 finally
 SFD.Free;
 sTemp.Free;
 end;
end;

发表回复

登录... 后才能评论