如何将文本文件中的内容写入ACCESS库中:(100分)

  • 主题发起人 主题发起人 sunmuhua
  • 开始时间 开始时间
S

sunmuhua

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将文本文件中的内容写入ACCESS库中:
张红,1978-7-01,女,32,2500.00,湖南省
小芬,1972-4-01,女,21,2500.00,湖南省
 
用dts
要是自己写的话那就用stringlist都出来,再用sql insert
 
因为你这些文本都是有格式的..你可以写一个分解函数..把字段分开..
再用循环把他写入数据库.
分解函数

for i:=0 to 文件的行数
begin
分解(读出这一行内容.)
插入这些字段
end;
这样就行了

 
access自身有导入功能,从 文件->获取外部数据->选txt文件,不过没试过,不知道效果怎样。
写程序的话,用TStringList分割","很方便。
 
把文本文件寄给我:我给你写个例子
nibul@sina.com
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1548694
 
先用memo读出来,再用copy()和pos()函数分解字符串,最后附给相应的字段。
 
可以通过TEXT数据库引擎获得TXT文件的数据,然后写入数据库啊!
 
读取每行,然后用“,”号分段
 
var
strLst,strLst1: TStringlist;
i: integer;
begin
strLst:=TStringlist.Create;
strLst.LoadFromFile('c:/aa.txt'); //读取文件
for i := 0 to strlst.Count -1 do begin
strLst1.TStringlist.Create;
strlst1.Delimiter := ',';
strlst1.DelimitedText := strlst;
{ ................
此处写入插入数据库的语句

如下:
张红,1978-7-01,女,32,2500.00,湖南省
strlst1[0] 返回姓名
strlst1[1] 返回生日
......不用细说了吧
.................. }
strLst1.Free;
end;
strLst.Free;
end;
 
当运行“一少”的程序好象有错误,能否详细点
 
access2000的导入功能,又向导,很容易,只要你的文件中的逗号不是中文的(如果是的话,可以查找替换一下)
 
我不用向导,要用写代码实现??????
 
没有调试过,看看能不能实现。

procedure TForm1.Button1Click(Sender: TObject);
var
i,iCount: integer;
begin
//if not FileExists(文件) then
//exit;
//memo1.Lines.LoadFromFile(文件);
memo1.Text := '张红,1978-7-01,女,32,2500.00,湖南省'+#13#10+
'小芬,1972-4-01,女,21,2500.00,湖南省';
memo1.Lines.CommaText := memo1.Text;
iCount := memo1.Lines.Count div 6;
for i := 0 to iCount - 1 do
begin
ADOTable.Insert;
ADOTable.FieldByName('field1').AsString := memo1.Lines.Strings[i*6];
ADOTable.FieldByName('field2').AsString := memo1.Lines.Strings[i*6+1];
ADOTable.FieldByName('field3').AsString := memo1.Lines.Strings[i*6+2];
ADOTable.FieldByName('field4').AsString := memo1.Lines.Strings[i*6+3];
ADOTable.FieldByName('field5').AsString := memo1.Lines.Strings[i*6+4];
ADOTable.FieldByName('field6').AsString := memo1.Lines.Strings[i*6+5];
ADOTable.UpdateBatch();
end;
end;
 
open the text file then got one file handle then we can use 'read line command' to
read one line text then analyse the full line text . the we can open one connection to fill up the data as required.
just try
 
去打一个cvs控件吧。
 
这个问题应该自己学做,不要太懒了:)?
分割还是很简单的
ADO操作数据库也不太难
 
>>当运行“一少”的程序好象有错误
好象是strLst初始写错了

>>strLst.Create
应该是 strLst := TStringList.create;
 
不好意思,手写的,没编译了看看,已纠正
 
"一少"中的strlst1[0]并不是返回姓名(张红),而是返回(姓名,出生年月,性别,...) 张红,1978-7-01,女,32,2500.00,湖南省
 
ADO連接Access,用ADOTable操作數據表,從文件讀出記錄,然後將其寫入access,程序並不難寫。
 
后退
顶部