主题:[讨论]求助高手关于对TXT文件中指定的列读取操作的问题
jianguom
[专家分:0] 发布于 2011-04-26 11:14:00
各位老师:
我是学VB的,由于要处理TXT文件相当大(约为80万行,300列左右),用VB处理起来相当慢,所以求助C友高手解决此问题,谢谢!!
问题是这样的:
有一个以分号分隔TXT文件,想通过对指定的列输入相应的数进行查找,如果某行指定的列和输入的数一致,那么将该行全部读取放到一个新的TXT文当中,文件格式不变;
一个以分号分隔的TXT文件,当运行程序能达到的目的是:
1、对指定的第5列进行查找(以分号为列)
2、提示你从键盘输入对指定的列想要查到的数.
3、如果某行指定的第5列输入的数和TXT文件中的列的值相同,则将此行读取另存到新的TXT文件中.
...
将整个文件中所有的符合条件的行全部放到新的TXT中去.
------------------------------------------------------
例如:TXT文档的格式如下:
date:20110426
12;456575505;435522;96140;3;f5e6498d;13352470030;
12;456575635;435572;92150;6;cfed98ff;18904020456;
12;456584519;436262;92880;3;f5e64981;13309831485;
12;456584635;436305;89580;6;f5e64992;13342451649;
12;456591701;436593;115570;3;f5e6498d;13352470030;
12;456591826;436622;113700;6;cfed98ff;18904020456;
12;456598043;437300;94090;3;f5e64981;13309831485;
12;456598191;437354;89740;6;f5e64992;13342451649;
12;456606115;437860;99840;3;f5e6498d;13352470030;
12;456606270;437901;96840;6;cfed98ff;18904020456;
12;456611796;438352;94010;3;f5e64981;13309831485;
12;456611926;438404;89740;6;f5e64992;13342451649;
当运行程序时有如下的提示:
*要操作的第5列(以分号为列)
*想要查找该列的数是多少:如3
*将第5列为3的所有行全部提取放到新的TXT文档中。
最后更新于:2011-04-27 08:49:00
回复列表 (共12个回复)
沙发
bruceteen [专家分:42660] 发布于 2011-04-26 12:10:00
想要加快速度的话
1。以二进制格式打开文件,而不是文本方式
2。每次读取一个块(比如4096字节),自己搜索(memchr)回车换行,自己搜索分号
3。用strtoul将字符串转化为数字,而不是用sscanf
板凳
jianguom [专家分:0] 发布于 2011-04-26 13:24:00
能不能写一下程序呀,老师?
3 楼
jianguom [专家分:0] 发布于 2011-04-26 14:05:00
有人没?
4 楼
windy0will [专家分:2300] 发布于 2011-04-26 17:21:00
我觉得不把字符串转为整数也可以,把整数转成字符串,然后用memcmp来比较。
如果一开始就让输入的txt文件里面的数据有规律就好了。如让每行数据是一样长,并且每个分号间的数据也一样长,可以用0来填充 。
5 楼
cgl_lgs [专家分:21040] 发布于 2011-04-26 22:06:00
樓主照著周前輩的思路先寫一下程序,然后有什么不明白的接著發貼吧:)
6 楼
jianguom [专家分:0] 发布于 2011-04-27 08:50:00
我还是搞不定,谁能帮忙给写一下?
7 楼
cgl_lgs [专家分:21040] 发布于 2011-04-27 10:05:00
总想着不劳而获不好。
8 楼
jianguom [专家分:0] 发布于 2011-04-27 10:18:00
实在是对C了解太少了。[em7]
9 楼
jianguom [专家分:0] 发布于 2011-04-27 13:56:00
谁帮调试一下,老是报错:
---------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
10 楼
cchmhao2010 [专家分:10] 发布于 2011-04-27 17:38:00
[url=http://www.worldgodshop.com/]Supra Shoes[/url] [url=http://www.worldgodshop.com/]Radii shoes[/url] [url=http://www.worldgodshop.com/]Prada Shoes[/url] [url=http://www.worldgodshop.com/]Jordan shoes[/url] [url=http://www.worldgodshop.com/]Christian Louboutin shoes[/url]
我来回复