请教用ado把格式文本文件导入到access的方法(200分)

  • 主题发起人 主题发起人 flysnow1978
  • 开始时间 开始时间
F

flysnow1978

Unregistered / Unconfirmed
GUEST, unregistred user!
文本文件是用空格分割的。
例如:
A B C
A C D
我直接编程一行一行的读下去,速度太慢了,有没有类似sql server的bulk insert
的方法可以使用?
 
呵呵,我就会一条条的读,除非数据量大(十几万),否则要不了多少时间。
procedure RegulateStr(aString:String;Sepchar:String;Isfirst:boolean);
//aString 为取出的字符串,Sepchar为分隔符.
var
Num:Integer;
MyStr,qryStr:String;
begin
Num:=0;
//i:=length(aString);
while length(astring)<>0 do begin
mystr:=copy(astring,1,pos(sepchar,astring)-1);//截取子符串
delete(astring,1,pos(sepchar,astring)); //删除子符串
if mystr=''then mystr:='1.00'; //防止空字符
if Isfirst then begin//如果是第一条,则特殊处理。
Form1.Query1.fields[Num].DisplayLabel:=mystr;
end else
begin
Form1.Query1.Fields[Num].AsString:=mystr;
end;
Num:=Num+1;
end;
end;
//我用TQUERY做的,相应的改一下吧。
 
我想你是想文本文件中的每行是一条记录,也就是说记录用回车隔开,记录项用空格隔开。
在你的问题中,每条记录有三项。right?

Ok,你直接添加一个文本文件ODBC数据源, 驱动选择Microsoft Text Driver(*.txt,*.csv)
选择目录为你的文本文件所在目录,在选项中可以定义格式,选择你的文本文件,
选择格式为自定义分隔符,分隔符为空格,点击猜测就能自动分析出你的数据字段。
定义好数据源后,就可以和普通数据库一样操作了。
 
我的意思是把文本文件导入到access中的方法。
 
先把文本文件的内容一次性读到内存中,再添加到数据库中,
var
ts:tstringlist;
i:integer;
begin
ts:=tstringlist.create;
ts.loadfromfile('文件名');
for i:=0 to ts.count-1 do
//添加纪录
ts.free;
end;
 
kingdeezj说得不错!
 
你不是嫌一行一行的读写太慢吗?
添加好数据源,能够把txt文件当普通的数据表使用了,你就可以使用工具导入了!
 

Similar threads

后退
顶部