数据导出问题:access-->>txt ,这样的格式Argentina Buenos Aires~South America~2777815~32

  • 主题发起人 guilinlzy
  • 开始时间
G

guilinlzy

Unregistered / Unconfirmed
GUEST, unregistred user!
数据导出问题:access-->>txt ,这样的格式Argentina Buenos Aires~South America~2777815~32300003~怎么导出? (100分)<br />可能会有大量的数据,小弟事先没做过类似的,而且很急,要求如上,希望有经验的给我点
建议。
 
用ado
savetofile('xx.txt')
老容易了,
你试一试吧
 
用batchmove控件,我试过没问题
 
主要要注意由于数据量大,在导出的过程中时间太长,长时间导致计算机没有相应,
甚至死机,注意导出时所选用的方法
采用ado 的savetofile是个不错的选择,效率很好,完整性当然也不错
 
还有数据是在DBGrid控件中的,假设所有的数据都在一个表中,会有什么样的事情发生呢?
 
savetofile('xx.txt')
 
OK,完成了给分啊。
 
如果数据量确实相当大,可考虑采取SQL SERVER的 DTS功能
 
OK了,有个问题四如何让下面这一段
Argentina Buenos Aires South America 2777815 32300003
按这样导出:
Argentina Buenos Aires~South America~2777815~32300003~
 
这个恐怕只能自己写代码了。做一个循环取数据集的每字段数据加上‘~’号,再做一个
循环取数据集的每一条记录。
 
哪位仁兄能给点代码瞧瞧吗?
主要是不能出任何差错,如果数据很多,怎么提供相应的测试呢?
 
你查一查,
不就是中间加分融符嘛,
foxbase都能做到,
 
procedure TForm1.N5Click(Sender: TObject);
var
str:string;
filename:textfile;
i,j,n:integer;
p:string;
begin
if SaveDialog2.Execute then
begin
str:=SaveDialog2.FileName;
assignfile(filename,str);
if fileexists(str) then
DeleteFile(SaveDialog1.FileName);
try
Screen.Cursor:=crHourGlass;
rewrite(filename);
p:='~';//分隔符
str:='';
n:=0;//query字段N序号
Query1.First;
for n:=0 to Query1.FieldCount -1 do
begin
str:=str+Query1.fields[n].DisplayLabel+p;
end;
writeln(filename,str);
n:=0;//query字段N序号
str:='';
while not Query1.Eof do
begin
for n:=0 to Query1.FieldCount -1 do
begin
str:=str+Query1.fields[n].AsString+p;
end;
writeln(filename,str);
str:='';
Query1.Next;
end;
except
ShowMessage('写文件时产生错误。可能是该文件已被其他程序打开,或系统错误。');
closefile(filename);
end;
Screen.Cursor:=crdefault;
Application.MessageBox('操作在没有警告的情况下正常结束!','完成',mb_ok+mb_iconinformation);
closefile(filename);
end;
end;
 
在这个过程中能保证非常高的准确性吗?
要求出错的概率非常低
主要要注意哪些方面的异常处理呢?
 
用Access 2000自带的导出功能
1.在Access中打开一个表,选择导出,选择导出格式(*.txt,*.cvs),按"保存全部"
2.选择带分隔符 - 用逗号或制表符之类的符号分隔每个字段,按"下一步"
3.选择分隔符(缺省为"逗号"),你可以自已更改(选择其他再输入你想要的分隔符)
4.文本识别符可以不要,缺省是双引号,按"下一步"
5.导出文件路径
6.完成
 
to wind2000,谢谢,
不过我要求的是通过程序完成的,
 
TO kingdeezj:
你的只是完成加上“~”就是
Buenos Aires~ South America~ 2777815~ 32300003~
而不是
Argentina Buenos Aires~South America~2777815~32300003~
是否可以通过Tstringlist来完成啊,就是把一条记录一个一个字段读入,并在每个字段
后面加上“~”,就OK了?
 
呵呵,出现这个现象是因为空格在做怪吧?
你贴两条记录出来瞧瞧。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
602
import
I
顶部