免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5205 | 回复: 20
打印 上一主题 下一主题

[函数] 菜鸟:文本文件如何导入数据库表?请指点思路及主要函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-12 12:26 |只看该作者 |倒序浏览
我有如下文件:
23072201010114600000 嘉荫县朝阳镇吉如食杂店 01 2004-05-13 00:00:00 0 0 0 50.00 0
0 0 0 0 0 ^M
0 0 50.00 23072201010067500000 嘉荫县朝阳镇橄榄绿美发厅 01 2004-05-13 00:00:00 0
0 0 56.00 0 ^M
0 0 0 0 0 0 0 56.00 23072201010050100000 嘉荫县朝阳镇休闲租书租碟 01 2004-05-13
00:00:00 ^M
35.00 6.00 180.00 15.00 0 0 9.00 4.00 0 0 0 0 249.00 23072201010050800000 ^M
嘉荫县朝阳镇安居旅店 01 2004-05-13 00:00:00 0 0 150.00 40.00 0 0 7.20 0 0 0 0 0
197.20 ^M


规律是每条记录17个字段<space>;或者<tab>;为分隔符

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2004-05-12 13:21 |只看该作者

菜鸟:文本文件如何导入数据库表?请指点思路及主要函数

什么数据库啊?

有你这么问问题的吗?

这次就算了,下次删。

论坛徽章:
0
3 [报告]
发表于 2004-05-13 09:30 |只看该作者

菜鸟:文本文件如何导入数据库表?请指点思路及主要函数

原帖由 "flw" 发表:
什么数据库啊?

有你这么问问题的吗?

这次就算了,下次删。


:em11: 下不为例啊, :em11:
其实该文本是以空格作分隔符的多条数据记录。我是想把它重新整理成数据记录并插到数据库表中形成数据库文件的。事急且本人一时没思路,请大侠指点迷津。

论坛徽章:
0
4 [报告]
发表于 2004-05-18 16:47 |只看该作者

菜鸟:文本文件如何导入数据库表?请指点思路及主要函数

各位老大,我有些思路了,不知道是否可行:
用fread函数读文件,遇到空格后保存获得的字符串到结构体的相应字段,
如果可行的话,如何判断是否读到空格呢?
或者老大们有更好的办法,请不吝赐教。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2004-05-18 16:51 |只看该作者

菜鸟:文本文件如何导入数据库表?请指点思路及主要函数

你还是没有说清楚是什么数据库啊!

论坛徽章:
0
6 [报告]
发表于 2004-05-18 17:17 |只看该作者

菜鸟:文本文件如何导入数据库表?请指点思路及主要函数

[quote]原帖由 "flw"]你还是没有说清楚是什么数据库啊![/quote 发表:

他的问题在于怎么把这些数据重文本中读出来,而不是怎么样写入到什么数据库!
问题好简单
1.
读出一行数据,每行数据保存到一个结构体,保存到数据库;
继续读数据重复上述操作,优点操作简单方便,缺点速度慢
2.读出数据,保存到链表然后保存到数据库;优点速度快,缺点操作稍微麻烦点,数据量大会占用比较多的内存

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2004-05-18 17:22 |只看该作者

菜鸟:文本文件如何导入数据库表?请指点思路及主要函数

[quote]原帖由 "liusn2000"]他的问题在于怎么把这些数据重文本中读出来,而不是怎么样写入到什么数据库![/quote 发表:

可是如果告诉了数据库,也许那种数据库就有相应的工具哦!
象 BCP,很方便的,为什么要自己编呢?

论坛徽章:
0
8 [报告]
发表于 2004-05-18 19:54 |只看该作者

菜鸟:文本文件如何导入数据库表?请指点思路及主要函数

我自己的做法是写个小C/C++代码,按行读(fgets),然后,用自己写的分割函数,利用字段之间的分隔符号,拆分具体的字段,然后,根据具体的数据库入库。
分割函数会写吧,就是,在字符串查找分割符号,并记数。
如果常常遇到,可以把上述的东东弄成具备一定的配置信息比如分割符号,每行字段个数,每个字段数据库类型,这样,就会更加方便。
数据库工具有时候有问题,如BCP,遇到稍微特殊点的字段或有漏字符什么的就无法入库。而且会占用大量数据库连接资源。

论坛徽章:
0
9 [报告]
发表于 2004-05-19 09:22 |只看该作者

菜鸟:文本文件如何导入数据库表?请指点思路及主要函数

原帖由 "windflowers1976" 发表:
我自己的做法是写个小C/C++代码,按行读(fgets),然后,用自己写的分割函数,利用字段之间的分隔符号,拆分具体的字段,然后,根据具体的数据库入库。
分割函数会写吧,就是,在字符串查找分割符号,并记数。
如果..........
  1. (fread(&jksareastru,1, 961, fp)!=961)
复制代码

这是我参考的语句,是打开文件后再文件中按顺序读取961个字节并放在结构体中。
但我要处理的文件并非固定长度啊?所以这个语句肯定不好用的。
能不能给出fgets()函数的具体用法,以及如何编写分割函数把变长度字段分离,放在结构体中。

谢谢

论坛徽章:
0
10 [报告]
发表于 2004-05-19 09:30 |只看该作者

菜鸟:文本文件如何导入数据库表?请指点思路及主要函数

原帖由 "liusn2000" 发表:

他的问题在于怎么把这些数据重文本中读出来,而不是怎么样写入到什么数据库!
问题好简单
1.
读出一行数据,每行数据保存到一个结构体,保存到数据库;
继续读数据重复上述操作,优点操作简单方便,缺点速度慢
..........



我用到的是sybase数据库操作系统为AIX。

但是文件的特点是流文件并不分行的,字段之间仅有空格分隔符。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP