1,把txt读入一个stringlist中,然后分析并插入.
2,轉載一下別人的代碼,你自己調試一下.
话题1714905的标题是: 如何将文本文件导入SQL (100分)
分类:数据库-文件型 krisjim (2003-03-27 14:32:00)
Afghanistan. 101. 阿富汗.
Africa. 200. 非洲.
Albania. 313. 阿尔巴尼亚.
Algeria. 201. 阿尔及利亚.
Andorra. 314. 安道尔.
以上是一个TXT文件, 如何将内容分三个字段转出到SQL.
字段1 字段2 字段3
Afghanistan. 101. 阿富汗.
Africa. 200. 非洲.
Albania. 313. 阿尔巴尼亚.
Algeria. 201. 阿尔及利亚.
Andorra. 314. 安道尔.
smokingroom (2003-03-27 14:45:00)
procedure TForm1.Button2Click(Sender: TObject);
var
F:TextFile;
Str:string;
Field1,Field2,Field3:string;
begin
AssignFile(F,'c:/aa.txt');
Reset(F);
Field1:='';
Field2:='';
Field3:='';
while not Eof(F) do
begin
Readln(F,Str);
if Pos('.',Str)>0 then
begin
Field1:=Copy(Str,1,Pos('.',Str));
Str:=Copy(Str,Pos('.',Str)+1,Length(Str));
Field2:=Copy(Str,1,Pos('.',Str));
Str:=Copy(Str,Pos('.',Str)+1,Length(Str));
Field3:=Str;
end;
AppendNewRecord(Field1,Field2,Field3);
end;
CloseFile(F);
end;
procedure TForm1.AppendNewRecord(Field1,Field2,Field3:string);
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('INSERT TableName(Filed1,Field2,Field3) VALUES
![Smile (: (:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
FiledValue1,:FiledValue2,:FieldValue3)');
Parameters[0].Value:=Field1;
Parameters[1].Value:=Field2;
Parameters[2].Value:=Field3;
ExecSQL;
end;
end;
pdb (2003-03-27 14:53:00)
給分,老大:
procedure TForm1.Button1Click(Sender: TObject);
Var Str,FileName:String;index,i,j:Integer;
ListTxt:TStringList;FS: TFileStream;
begin
FileName:='c:/aa.txt'; //文件名
If Not FileExists(FileName) then
begin
Showmessage('找不到該文件:'+FileName+',請確認!');
Exit;
end;
//以下是將文件的內容裝到列表里;
FS :=TFileStream.Create(FileName,fmShareDenyNone);
ListTxt:=TStringList.Create;
LIstTxt.LoadFromStream(Fs);
//打開數據庫表
ADOQuery1.close;
ADOQuery1.sql.text:='select f1,f2,f3 from 表名';
ADOQuery1.Open;
index:=-1;
For i:=0 to ListTxt.Count-1 do
begin
ADOQuery1.Append;
Str:='';
Index:=-1;
for j:=1 to Length(ListTxt
) do
If (ListTxt[j]<>'.')And(j<>Length(ListTxt))then
Str:=Str+ListTxt[j]
Else begin
Index:=index+1;
ADOQuery1.Fields[index].AsString:=Str;
Str:='';
end;
If ADOQuery1.Modified then ADOQuery1.Post
Else ADOQuery1.Cancel;
end;
end;
book523 (2003-03-27 15:52:00)
楼上的方法可行,但是速度上有点慢。
不知有没有更好的方法?