如何把这种格式文本文件导入到数据库

kuangyulai 2006-04-14 10:06:42
有一个TXT文件(4个字段名:条码、商品名称、类别、类型) 格式如下:

9787883631460~~无极~~DVD~~故事片
10900889~~雷射那卡西叁~~CD~~合辑
9787883165231~~莎拉克劳克兰晚霞余晖~~CD~~专辑
9787884953899~~牧人德德玛~~CD~~专辑
9787883603009~~孙燕姿遇见~~DVD~~MTV

可能有N行 '~~'是分割符 想根据分割符来取出相应字段,
然后插入到SQL Server2000对应的字段中去
...全文
1062 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wildhorsetlj 2006-04-15
  • 打赏
  • 举报
回复
var
FtxtFile:TextFile;

if not FileExists('Temp.log') then exit; //temp.log为文本文件名
Assign(FTxtFile,'Temp.log');
Reset(FTxtFile);
while not Eof(FTxtFile) do
begin
ReadLn(FTxtFile,s); //逐行读取数据
... //数据操作处理部分
end;


========================================
keiy的方法比俺简单多了,以后多多学习了
kuangyulai 2006-04-14
  • 打赏
  • 举报
回复
说明一下,我不用DTS,要通过DELPHI来实现,
用户不懂DTS,呵呵
wildhorsetlj 2006-04-14
  • 打赏
  • 举报
回复
var
MyStr:array[1..4] of string;
//将数据以数组的形式取出数据
LeftStr:=S; //S为行字符串全内容
for k:=1 to 3 do begin
i:=pos('~~',LeftStr);
MyStr[k]:=StrToInt('~~'+Copy(LeftStr,1,i-1));
LeftStr:=Copy(LeftStr,i+1,Length(S)-i+2);
end;
MyStr[4]:=LeftStr;

将分解后的字符串值赋值给相应的字段,就可以实现了
leongwong 2006-04-14
  • 打赏
  • 举报
回复
打开SQL库,右击某一数据库选择“所有任务”-->“导入数据”,导入数据源选择“文本文件”-->“带分隔符”-->“其它”填入"~~",下面就Next一直到底就OK了!
楼主在问这个问题前,可以在论坛中搜索下,会有很多相关的贴子出来的!
leongwong 2006-04-14
  • 打赏
  • 举报
回复
楼主使用SQL中的导入/导出功能可以实现你所说的!DTS功能可以自动分辨出字段数!
Hank 2006-04-14
  • 打赏
  • 举报
回复
通过SQLSERVER的导入导出一下就可以了
柯本 2006-04-14
  • 打赏
  • 举报
回复
忘写了
1.文件名为schema.ini
COL?后面的为字段名及宽度,你可自己定义
柯本 2006-04-14
  • 打赏
  • 举报
回复
可以用odbc的TEXT导入
1.在你的TXT同名目录下建一文件(设你的文件名为t.txt)
[t.txt]
ColNameHeader=FALSE
CharacterSet=OEM
Format=Delimited(~)
Col1=NUM Char Width 20
Col2=N1 Char Width 1
Col3=NAME Char Width 30
Col4=N2 Char Width 1
Col5=TYPE Char Width 8
Col6=N3 Char Width 1
Col7=NOTE Char Width 18
2.用delphi的ado联到sqlserver
然后写:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.SQL.Text:='insert into vod select * from OpenRowset(''MSDASQL'', ''Driver={Microsoft Text Driver (*.txt; *.csv)};'
+'DefaultDir=c:\temp;'',''select num,name,type,note from T.TXT'')';
ADOQuery1.execsql;
end;
就可以了(vod为server上的表名)
ln521 2006-04-14
  • 打赏
  • 举报
回复
读取文本文件和操作数据文件一样的
eof
//操作语句啊
next
apartst 2006-04-14
  • 打赏
  • 举报
回复
你可以用TStringList的LoadFromFile读进去啊
kuangyulai 2006-04-14
  • 打赏
  • 举报
回复
to:wildhorsetlj(tianye`)
你只帮我写了一半,怎么逐行读取文本文件的数据呢

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧