dbgrid 转换成Txt Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiDB/html/delphi_20061222172931157.html
我希望利用ado 控件,请给出详细代码?
如果想比较快,可以用dbgrideh控件或者cxgrid,他们都提供了导出功能。
不用控件,可以自己先创建txt文件,自己写导出,
DM.DataSet.SaveToFile('C:\我的文件.dbt',pfADTG);
//导出来的文件扩展名你自己随便定, 但是估计你看不懂里面的内容,要想导出标准的文本,你可以 导出成xml文件~!
你要保存成xml 就在后面使用pfXML
for 循环写 txt
while not DataModule1.ADOQuery.Eof do
begin
n1 := DataModule1.ADOQuery.fieldbyName('KQJHZD').AsString;
n2 := DataModule1.ADOQuery.fieldbyName('BHZD').AsString;
n3 := DataModule1.ADOQuery.fieldbyName('BC1').AsString;
n4date := DataModule1.ADOQuery.fieldbyName('RQZD').AsDateTime;
n4 := DateToStr(n4Date);
n5 := DataModule1.ADOQuery.fieldbyName('SJZD').AsString;
TxtStr := ' '+ n1+' '+ ','+' '+ n2+' '+ ','+' '+ n3+' '+ ','+' '+ n4+' '+ ','+' '+ n5+' ';
AssignFile(F, SavePath);
Append(F);
Writeln(F, TxtStr);
CloseFile(F);
DataModule1.ADOQuery.Next;
end;
这是我用过的一个方法,但愿对你有点帮助
我要显示的字段有40个左右,难道要定义40个变量吗?
还要别的方法吗?
在while循环中可以加入For
for I:=0 to fieldcount-1 do
LinesStr:=LinesStr+Fields[I].asstring+','; 这样就不需要定义变量了!
上面的写文件有问题,打开和关闭文件不应该出现在循环体内。循环开始就打开准备写,结束之后再关闭。