function 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;