问一个很菜的问题? 我用DBGrid 的Savetofile 方法保存成txt文件,在用其loadfromfile 方法加载他,结果只显示列头。TXT文件中也只有列头,而没有数据。怎么回事啊?:( 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, ExtCtrls, DBCtrls;type TForm1 = class(TForm) DataSource1: TDataSource; Table1: TTable; DBGrid1: TDBGrid; Button1: TButton; SaveDialog1: TSaveDialog; DBNavigator1: TDBNavigator; Table1ID: TAutoIncField; Table1XH: TSmallintField; Table1XM: TStringField; Table1XB: TStringField; Table1NL: TSmallintField; Table1SZXB: TStringField; procedure Button1Click(Sender: TObject); private { Private declarations } procedure DbgridToTxt(source:Tobject); public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);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; end. delphi 实现图像拖放 大家有没有用19#宽屏做软件开发的 fastreport 如何分栏 对结果集主键插入换位的算法? 请教怎么把数据库登录框去掉 若是SQL的数据库、Query的组件呢?好象没有LoginPrompt 属性???? 怎样调用系统命令!如(copy,net send等)! teechart 坐标获取问题 关于报表书行排列的问题 有谁知道,产生专家程序的方法,步骤。(用来产生DLL程序的模板,减少编程的工作量) 150台左右的局域网要求简单的数据传递(用S/C),后生真心求教,望先生不辞辛劳。 文件指针移动 如何在一个进程中控制其它的进程(监控运行状态、启动、停止)?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, ExtCtrls, DBCtrls;type
TForm1 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
DBGrid1: TDBGrid;
Button1: TButton;
SaveDialog1: TSaveDialog;
DBNavigator1: TDBNavigator;
Table1ID: TAutoIncField;
Table1XH: TSmallintField;
Table1XM: TStringField;
Table1XB: TStringField;
Table1NL: TSmallintField;
Table1SZXB: TStringField;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure DbgridToTxt(source:Tobject);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
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;
end.