要求 是 对 文件里面的每一行数据的最后几位(都是0到9之间的数),都在给定字符串中 查找相应的位置关系(只定义了十种位置关系) 并进行一系列的运算,对上面的过程循环300多万次,每一次只改变给定的字符串。
其中300多万个字符串可以说是给定的。这个文件是 5万多行。
我的做法是:一次性读到内存的,然后对一个给定的字符串做相应的处理,这个过程我测了下用时是0.3秒左右,这样肯定不行。也想过把最后几位的所有排列全枚举出来,并列出在这300多万个字符下位置关系写进文件,用到时候再读 可是这样文件又太大了。还请大家给点高见啊,先谢谢了!

解决方案 »

  1.   

    文件读取到内存映射,CreateFileMapping
    这样操作效率高一点
      

  2.   

    你说的枚举出所有可能性是可行的,将枚举出来的结果做成一个表,并做索引,将你的百万数据也导入到一个MSSQL表中,这样只要一个简单的二表连接查询就能生成你要的结果了.
      

  3.   

    建立索引文件才是王道^_^ 我就这么干的 ANSI类型文本文件 1G的也很快建好了^_^  不过不知道你对速度要求多大
      

  4.   

    为了把问题能说清楚点又写了个帖子,麻烦大家再看看,谢谢!
    http://topic.csdn.net/u/20090409/19/98fcd601-e3a9-49a4-9756-64116c90f71d.html?seed=1273380983
      

  5.   

    http://topic.csdn.net/u/20090409/19/98fcd601-e3a9-49a4-9756-64116c90f71d.html?seed=1273380983