回 帖 发 新 帖 刷新版面

主题:[讨论]求助高手关于对TXT文件中指定的列读取操作的问题

各位老师:

我是学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文档中。

回复列表 (共12个回复)

11 楼

[url=http://www.cmd59.com/code/vb/]vb[/url]
[url=http://www.cmd59.com/code/vc/]vc[/url]
[url=http://www.cmd59.com/plus/list.php?tid=16]delphi[/url]
[url=http://www.cmd59.com/code/vb.net/]vb.net[/url]
[url=http://www.cmd59.com/code/cc/]C#[/url]
[url=http://www.cmd59.com/code/java/]java[/url]
[url=http://www.cmd59.com/Python]python[/url]
[url=http://www.cmd59.com/vb/]vb源码[/url]
[url=http://www.cmd59.com/yy]易语言源码[/url]
[url=http://www.cmd59.com/c++]VC 源码[/url]
[url=http://www.cmd59.com/delphi]delphi 源码[/url]
[url=http://www.cmd59.com/]编程资源网[/url]
[url=http://www.cmd58.com/]vb[/url]

12 楼

恕鄙人愚钝, 琢磨了半天,觉得你问了个不是问题的问题. 为何这么说? 这个问题和你是不是学VB的有关系么? 
VB处理文件的方式一样可以分为文本和所谓二进制方式, open ,close ,get ,put 等函数可用.
c的使用FILE* 这么一个pointer. 
c++ 用了stream方式. 因为需要 object. 
有区别, 可殊途同归. 你的问题用VB不成问题. 如果不会用,那就是问题了. 换成C/C++的方式, 可以啊, 做成DLL,用VB在invoke吧. 那不是脱了裤子放屁么?!
文件处理,VB不慢, 你没用好而已. VB弱在没有application framework上.其他不差.

我来回复

您尚未登录,请登录后再回复。点此登录或注册