有一个txt文件,每条记录的长度都是固定的,格式也是固定的。会不停的写入,删除,查找。现在需要对这个文件的第N列进行查找,防止出现重复的现象。在单线程的情况下,如果提高写入,删除,查找的速度?

解决方案 »

  1.   


    CreateFileMapping??可是终端机上不支持...
    能不能从算法上优化?我现在的方法就是顺序查找。如果,用二分去做,查找很快,但是,如果要插入一条记录就苦逼了
      

  2.   

    这个问题没有简单有效的方法。
    如果用vector,可以二分查找,但插入肯定慢。
    用list,插入快,但不能二分查找。
    如果你愿意写代码的话,数据用list组织,然后,给数据表用vector建立一个索引表,用于查找。
      

  3.   

    以TXT文件第N列为标准建立一个索引文件,用于辅助查找。
      

  4.   

    根据某些行关系,建立个索引文件,
    http://www.it165.net/pro/
      

  5.   

    第一:做成MapFile,这样就是内存操作
    第二:最好将行的概念做成定长(比如1024),方便定位,减少更新成本
    第三:如果需要快速,就要引入索引的概念,将行数据摘要为索引,保存在一个单独的文件,供查询定位要快,不管愿不愿意,都需要引入数据库的方法:内存操作、结构化数据、索引...
      

  6.   

    1. 可以考虑小型文件型数据库,比如开源的sqlite
    2. 如果代码空间不够的话,和楼上各位说的一样,建立数据项的索引,文件指针偏移与数据项的对应关系,就可以快速访问此文件中的数据了.
    文件中的数据可以不按顺序存储,只同内存中索引有序.这样文件中的项的删除和插入都不用关心文件中具体的数据位置了.