免费注册 查看新帖 |

Chinaunix

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

文件的读写问题----读 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-16 11:39 |只看该作者 |正序浏览
对文件的读写操作不太熟悉,请教一个问题
有一个文件a.txt内容为:
011020073
011090074
011010079
011080080
。。。。。。
现在我要写个程序将该文件的每行的前面的4位取出来,请问该如何取?

论坛徽章:
0
48 [报告]
发表于 2006-07-11 18:45 |只看该作者
o ,学习了不少东西

论坛徽章:
0
47 [报告]
发表于 2006-07-11 16:06 |只看该作者
strstr()

论坛徽章:
0
46 [报告]
发表于 2003-06-18 08:13 |只看该作者

文件的读写问题----读

上面我的帖子程序有个低级错误,循环条件应该不用加 !。
    应该是 while ( fgets( ) )。
    不好意思!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
45 [报告]
发表于 2003-06-17 14:03 |只看该作者

文件的读写问题----读

版主过奖了。本来我前面已经提示过楼主了,但是他没有明白,所以不妨写清楚些。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
44 [报告]
发表于 2003-06-17 13:18 |只看该作者

文件的读写问题----读

flw兄对于ms sql server 7.0 中导入格式文本到数据库中的方法的描述,看了以后,估计小学生操作都没什么问题。

论坛徽章:
0
43 [报告]
发表于 2003-06-17 12:50 |只看该作者

文件的读写问题----读

谢谢!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
42 [报告]
发表于 2003-06-17 12:45 |只看该作者

文件的读写问题----读

该贴回答的很精彩,尤其是hopecao的耐性,值得发扬光大!

论坛徽章:
0
41 [报告]
发表于 2003-06-17 11:49 |只看该作者

文件的读写问题----读

看看fgets()函数的说明,它读定长字符到buff中,遇到换行或文件结束会停止读的。读出文件所有内容可以如下实现:

char buff[1024];  /*足够大,可以容下一行数据*/
memset( buff, 0x00, sizeof(buff) );
while ( !fgets( buff, sizeof(buff), fp )  )
{
memcpy(temp1,buf,4);
memcpy(temp2,buf+4,3);
..................

memset( buff, 0x00, sizeof(buff) );
}

使用字符串时最好养成memset()的习惯,由于编译器不同,有可能程序移植到其他机器会出现意料不到的结果。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
40 [报告]
发表于 2003-06-17 10:49 |只看该作者

文件的读写问题----读

回楼主:
在 ms sql server 7.0 中导入格式文本到数据库中的方法。( ms sql 2000 ) 我没有环境,不过想来应该是差不多的。

本方法仅适用于“格式文本”,所谓格式文本是指,在不同的行中,相同的字段值相对于行首的偏移应该是恒定的,或者每个字段之间用固定的分隔符格开的文本文件。

假设:
你的计算机已经安装了下面将要使用的所有工具、驱动。

具体操作:
1,点击“开始”->;“程序”->;“Microsoft SQL Server 7.0”->; “Import and Export Data”,出现一个对话框“DTS Wizard”,
2,点击“下一步”。
3,选择 Source 为“Text File”。并且指定你要导入的文件。点击“下一步”。
4,最上面有一个选项,花开两路,各表一支,现在先说选择“Delimited”的情况,选择 File type 为“ANSI”,Skip 是指每行行首需要跳过的无效字符,比如记录号等等。Row 是你的行分割符,这个你应该比我清楚。
5,点击下一步,你将会看到已经有一个预览效果,如果不满意,可以上一步重来。注意这里还有一个分割符的设置。
6,如果没有问题的话,点击“下一步”,出现选择目标服务器的对话框。
选择 Destination 为“Microsoft ODBC Driver for SQL Server”,Server 当然就是你的 SQL Server 名称啦。登录方式随便,只要能登录上 SQL 就行了。Database 就是数据库名称,如果登录成功的话,就可以选择了,选择你要的目的数据库名。点击“下一步”。
7,选择目标表名称,默认是文本文件的名称。再点两次“下一步”。
8,确认所有信息。无误则点击“完成”,开始导入数据。
9,如果无误,会提示成功,否则当提示失败后,按“上一步”重导。
10,如果实在搞不定,欢迎咨询 QQ:116544783。     

如果在第四步选择 Fixed field  的话,点击下一步到第五步的时候,就不用选择分割符了,而是要手工选择每一列的位置。     

另:你要编的程序已经有人替你编好了,这个程序就是大名鼎鼎的 BCP
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP