delphi 和数据库(100分)

  • 主题发起人 主题发起人 whyan
  • 开始时间 开始时间
W

whyan

Unregistered / Unconfirmed
GUEST, unregistred user!
请问有没有一种方法可以将不同的文本文档用程序一次性输入数据库。因为我现在编了一个delphi程序,只能将特定的一个文本文档输入数据库,我想让它在其它文档上也可以实现。谢谢。

 
只需加一个循环,在循环内用你的方法不就可以了,你用的是什么方法?贴出来来看看。
一般来说通过不同的文件名用LoadFromFile就可以了。
 
....
....
buffer:=copy(buffer,ipos,length(buffer)-ipos+1);
ipos:=pos(#13#10,buffer);
buffer1:=copy(buffer,1,ipos-1);

buffer:=copy(buffer,ipos+4,length(buffer)-ipos+1);
ipos:=pos(#13#10,buffer);
buffer2:=copy(buffer,1,ipos-1);

buffer:=copy(buffer,ipos+4,length(buffer)-ipos+1);
ipos:=pos(#13#10,buffer);
buffer3:=copy(buffer,1,ipos-1);

ipos:=pos(#13#10+'电',buffer);
if copy(buffer,ipos+2,2)='电' then
begin
buffer:=copy(buffer,ipos+2,length(buffer)-ipos+1);
ipos:=pos(#13#10,buffer);
buffer4:=copy(buffer,1,ipos-1);
end
else
buffer4:=' ';
ipos:=pos(#13#10+'传',buffer);
if copy(buffer,ipos+2,2)='传' then
begin
buffer:=copy(buffer,ipos+2,length(buffer)-ipos+1);
ipos:=pos(#13#10,buffer);
buffer5:=copy(buffer,1,ipos-1)
end
else
buffer5:=' ';
ipos:=pos(#13#10+'E',buffer);
if copy(buffer,ipos+2,1)='E' then
begin
buffer:=copy(buffer,ipos+2,length(buffer)-ipos+1);
ipos:=pos(#13#10,buffer);
buffer6:=copy(buffer,1,ipos-1)
end
else
buffer6:=' ';

query1.Close;
query1.SQL.clear;

query1.sql.add('insert into dbo.Experts(SummaryPageID,LastName,FirstName,Institution,MailingAddress,Email,Phone,FullName,Fax) values(1125,"'+buffer1+'","'+buffer1+'","'+buffer2+'","'+buffer3+'","'+buffer4+'","'+buffer5+'","'+buffer1+'","'+buffer6+'")');
query1.execsql;
 
将以上代码再执行一次(当然传不同的 buffer)
 
我对它能否用到其它文档比较头疼,如果每次都得改程序,太麻烦。谢谢。
 
编写一个通用的函数(在以上函数的基础上)
 
请问具体的实施方法(大概),谢谢。
 
loadfromfile,与文件类型无关。
 
关键是处理特殊的字符串
我写了一个比较简单的自动导入
使用appendrecord(,,,,);
原码在http://tingweb.yeah.net可以下载(数据库自动录入工具)
从目录中的格式文本导入
 
打个比方,我有如下格式的数据:
王小二 以及: 电话:022-22222222
北京 姓名:李小三
电话:010-11111111 天津
还有其他格式的,有时候顺序不一样,有时候格式不一样。
我想将它们统一成:
姓名:王小二
地址:北京
电话:01011111111
和:
姓名:李小三
地址:天津
电话:022-22222222
不知该如何处理。
 
自己分析代码,自己提取。
 
我认为, 你要先建立统一的 格式.

这才是一个好的习惯, 数据源一天一个样,

不是太麻烦 吗 ?
 
多人接受答案了。
 
后退
顶部