delphi导出为TXT格式怎么做,要求文件一共有7列,文件中每列之间以TAB做为分隔符号
是导出在DBGRIDEH组件里的数据,一共有7列,分别为L1,L2,L3,L4,L5,L6,L7,每一列之间以TAB做为分隔符号...
是导出在DBGRIDEH组件里的数据,一共有7列,分别为L1,L2,L3,L4,L5,L6,L7,每一列之间以TAB做为分隔符号
展开
展开全部
导出txt不难,以下是方法
建立一个SaveDialog1控件,一个button
button用来保存,点击事件是:
procedure TForm9.Button1Click(Sender: TObject);
begin
if (savedialog1.Execute)and (savedialog1.FileName<>'') then
begin
memo1.Lines.SaveToFile(savedialog1.FileName);
end;
end;
其中memo1是我用来放导出的内容的.
至于你说的分列,我不知道你是按什么标准来分的,比如内容(a/bc/d为3列),或着字数(5字一列)
你可以做代码检查输出的内容.,遇到'/'就替换成换行符tab,或者每5个字就插入一个tab
建立一个SaveDialog1控件,一个button
button用来保存,点击事件是:
procedure TForm9.Button1Click(Sender: TObject);
begin
if (savedialog1.Execute)and (savedialog1.FileName<>'') then
begin
memo1.Lines.SaveToFile(savedialog1.FileName);
end;
end;
其中memo1是我用来放导出的内容的.
至于你说的分列,我不知道你是按什么标准来分的,比如内容(a/bc/d为3列),或着字数(5字一列)
你可以做代码检查输出的内容.,遇到'/'就替换成换行符tab,或者每5个字就插入一个tab
追问
是导出在DBGRIDEH组件里的数据,一共有7列,分别为L1,L2,L3,L4,L5,L6,L7,每一列之间以TAB做为分隔符号,请写个详细的代码给我,可以加分给你
追答
我怎么猜你是要做个课程表的......
如果比较闲我就做个伪代码给你......
也等等别人的答案吧,
其实程序这东西,自己做上一两个比较大的,水平一下就上去了
给你一个程序设计的思路吧.....
PS:我做程序都是思路简单,写起来重复的\东西很多,希望你能有更好的设计.
为了方便我就假设按照课程表来做,.需要两个前提功能:
1,查找周几的第几节课
2.将一段string输出到memo,可以输出到光标位置和换行输出两种方式.
既然你都做到输出了,相信这两个功能你能做出来.
我的思路是把课程表先放到一个memo里,再用上面我给的输出语句导出txt
另外还需要两段东西.
1.取得你的grid的行数. 行数 :=clientdataset1.RecordCount;
2.让你的grid可以指向下一行 clientdataset1.Next;
另:删除当前行 clientdataset1.Delete;
指向第一行 clientdataset1.First;
建立一个隐藏的label,以下用@表示该label.caption
for i=1 to 7 do
begin
@:=当前行 第i列 的课程
memo当前行的后面加上@
memo当前行后面加个TAB
if i=7 then
begin
memo.lines.add:='' ; //为了在memo中换行
end;
end;
这样就完成了一行的输出
那么,输出全部文字.
clientdataset1.First;//先指向第一行
取得行数
for i=0 to 行数-1 do (我记得是从第0行开始的......)
begin
输出当前行的那一段
clientdataset1.next;
end;
这样就可以把课程表在memo中输出了.
再用最开始的方法,把memo中的内容输出到txt 中.
就是这个样子了......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var
ExpClass:TDBGridEhExportClass;
Ext:String;
dlgsave:TSaveDialog;
begin
dlgsave:= TSaveDialog.Create(nil);
begin
dlgsave.Filter:='Microsoft Excel|*.xls|CSV (Comma delimited)|*.csv|Text|*.txt|Web' +
' Page|*.htm|Rich Text Format(RTF)|*.rft';
if not dlgsave.Execute then Exit;
case dlgsave.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
4: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
5: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(dlgsave.FileName,Length(dlgsave.FileName)-2,3)) <> UpperCase(Ext) then
dlgsave.FileName := dlgsave.FileName + '.' + Ext;
SaveDBGridEhToExportFile(ExpClass,DBGridEh,dlgsave.FileName,true);
end;
end;
end;
需要在uses里加入DBGridEhImpExp
选择保存为txt格式,就可以了。以tab分隔
ExpClass:TDBGridEhExportClass;
Ext:String;
dlgsave:TSaveDialog;
begin
dlgsave:= TSaveDialog.Create(nil);
begin
dlgsave.Filter:='Microsoft Excel|*.xls|CSV (Comma delimited)|*.csv|Text|*.txt|Web' +
' Page|*.htm|Rich Text Format(RTF)|*.rft';
if not dlgsave.Execute then Exit;
case dlgsave.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
4: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
5: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(dlgsave.FileName,Length(dlgsave.FileName)-2,3)) <> UpperCase(Ext) then
dlgsave.FileName := dlgsave.FileName + '.' + Ext;
SaveDBGridEhToExportFile(ExpClass,DBGridEh,dlgsave.FileName,true);
end;
end;
end;
需要在uses里加入DBGridEhImpExp
选择保存为txt格式,就可以了。以tab分隔
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询