VC 里面处理30多万行的txt文件时,速度为什么这么慢?
我用 CStdioFile 来打开文件,一次性把文件的内容读到内存中,然后对内存中的字符串进行处理。
原txt文件里面,是按行存储一些中文、英文字符,每行都有一个以上的 ‘|’ 字符,一共有30多万行。我想按照所在行的内容里面的 ‘|’字符个数来排序,也就是,把所有行中,每行只有一个 '|' 字符的,排在前面,每行有2个的,排在其次,其它的以此类推。
有点像“畸形”的金字塔,少的在上面,多的在下面,堆积起来。
我在VC 里面的做法是,把前面读取进来的(以文本方式读取进来)字符串,以换行符 CRLF 为标志,逐行读取到一个临时字符串 tem 中,然后,判断这个临时字符串tem 里面有 n 个 '|'字符,然后把它存储到专门存储 n 个 ‘|’字符的字符串里,当把内存中的30多万行都读取完后,也就分析完毕了,然后,依次 把存储一个‘|’字符、存储两个‘|’字符、存储三个 ‘|’字符、、、的字符串内容写入到一个新的 txt文件里面。
但是,发现这样做,速度很慢,我试过不用线程、用单线程、用多线程来分析,效果都一样,非常慢。(如果要分析的 txt 内容比较小,比如几百KB,当然没问题)。
各位大侠,应该用什么方法来实现我的这个功能呢?
谢谢指点!
原txt文件里面,是按行存储一些中文、英文字符,每行都有一个以上的 ‘|’ 字符,一共有30多万行。我想按照所在行的内容里面的 ‘|’字符个数来排序,也就是,把所有行中,每行只有一个 '|' 字符的,排在前面,每行有2个的,排在其次,其它的以此类推。
有点像“畸形”的金字塔,少的在上面,多的在下面,堆积起来。
我在VC 里面的做法是,把前面读取进来的(以文本方式读取进来)字符串,以换行符 CRLF 为标志,逐行读取到一个临时字符串 tem 中,然后,判断这个临时字符串tem 里面有 n 个 '|'字符,然后把它存储到专门存储 n 个 ‘|’字符的字符串里,当把内存中的30多万行都读取完后,也就分析完毕了,然后,依次 把存储一个‘|’字符、存储两个‘|’字符、存储三个 ‘|’字符、、、的字符串内容写入到一个新的 txt文件里面。
但是,发现这样做,速度很慢,我试过不用线程、用单线程、用多线程来分析,效果都一样,非常慢。(如果要分析的 txt 内容比较小,比如几百KB,当然没问题)。
各位大侠,应该用什么方法来实现我的这个功能呢?
谢谢指点!
...全文
相关推荐
VC Txt文件转换为Dat文件.rar
VC 文件操作例子,将Txt文件转换为Dat文件,从别的源码中整理出来的一个模块代码,用于完成TXT文件格式转换为DAT格式,功能单一,在VC6下可编译源码。
VC/C++实现TXT到DAT文件转换的源代码
本文还有配套的精品资源,点击获取 简介:在IT行业中,文件格式转换是一个常见任务,特别是在文本数据处理方面。本文详细介绍了如何通过VC/C++编程语言实现从TXT文本文件到DAT数据文件的转换。此转换流程包括读取TXT文件内容、数据预处理、创建并写入DAT文件等步骤。在VC/MFC环境中,还可以利用MFC库简化文件操作,并创建图形用户界面。 1. 文件格式转换基础...
基于TMS30VC5402微处理器实现加速度式波浪传感器系统设计-综合文档
基于TMS30VC5402微处理器实现加速度式波浪传感器系统设计
VC运行速度慢的解决办法
在通信仿真中我们大都会用matlab进行仿真,因为matlab有自己的通信库函数,可以方便的调用,而用VC进行仿真的话速度会很快,原因是什么呢?这里你可以找到答案。
vc2008文件处理程序
编制简单的txt要求无重复点数据,且数据按点号大小的升序进行排序。要求整理后的数据按与原始数据文件同样的格式保存为另外一个文件


