我做了一个小软件里边有百十条数据,经常读取,索引很少。用自定义数据文件好还是用mdb数据库好

解决方案 »

  1.   

    sqlite也成,实际上,如果只有这么点的话,普通的文本也没啥吧?
      

  2.   

    百十条,ini或纯文本或clientdataset就行了吧
      

  3.   

    百十条信息,没必要用数据库,用文本或是xml就可以了。
      

  4.   

    这么少的数据用结构序列化或直接用HashedStringList就可以了,HashedStringList的优点是速度够快可以随便添加数据,如果有多个字段的话可以定义10行为一组,每行记录不同的字段,每10行为一条记录,速度快操作方便,用量也可以,相当于内存表了
      

  5.   

    纯文本就行,用TStringList加载并排序,二分法查找只是瞬间的事情。
      

  6.   


    插个题外的:
    我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!
    而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!
      

  7.   

    可以使用輕便的 TClientDataSet 之.公事包.模型......只需要在第一次使用時先自定義數據結構以 SaveToFile 函式存入一個 cds 檔......之後在程序以 LoadFromFile 函式讀入數據...以 SaveToFile 函式存入數據來操作......
      

  8.   


    插个题外的:
    我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!
    而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!
    我做过测试
    TStringList在1w以内,一般情况下,速度是秒杀。如果大于2w就不需要考虑了。
    如果你要用控件加载,最好加上
    beginupdate,否则控件刷新会让你疯掉。
      

  9.   


    插个题外的:
    我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!
    而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!
    我做过测试
    TStringList在1w以内,一般情况下,速度是秒杀。如果大于2w就不需要考虑了。
    如果你要用控件加载,最好加上
    beginupdate,否则控件刷新会让你疯掉。肯定都是加了beginupdate的了。
    ListBox的items居然不是普通的Tstrings,可能就是它导致比Memo.lines慢的
    不过memo的还是有点慢
      

  10.   


    插个题外的:
    我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!
    而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!
    我做过测试
    TStringList在1w以内,一般情况下,速度是秒杀。如果大于2w就不需要考虑了。
    如果你要用控件加载,最好加上
    beginupdate,否则控件刷新会让你疯掉。肯定都是加了beginupdate的了。
    ListBox的items居然不是普通的Tstrings,可能就是它导致比Memo.lines慢的
    不过memo的还是有点慢
    试试把文件内容读到s,然后memo1.text := s;
      

  11.   


    插个题外的:
    我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!
    而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!
    我做过测试
    TStringList在1w以内,一般情况下,速度是秒杀。如果大于2w就不需要考虑了。
    如果你要用控件加载,最好加上
    beginupdate,否则控件刷新会让你疯掉。肯定都是加了beginupdate的了。
    ListBox的items居然不是普通的Tstrings,可能就是它导致比Memo.lines慢的
    不过memo的还是有点慢
    试试把文件内容读到s,然后memo1.text := s;应该一样,因为都是需要settextstring,慢在 反复寻找回车再取得该行加入Tstrings
    想自己搞个字符串指针数组,分别对应回车后的首字符,把回车替换为#0
    这样无须复制字符串、加入Tstrings,应该会快很多,但是显示需要完全自己实现了
      

  12.   

    晕死了,又不是要直接显示出来,用什么StringList和memo啊,刷新显示的话速度会慢死的,当然几百行是没什么问题的,关键是memo每行有字符数量限制,如果超过长度的话就会自动断到下一行,直接用HashedStringList速度超快,我实测70万行数据只要5秒内。
      

  13.   

    如果是增,删,改,查等操作,建意还是用数据库吧Access或Sqllite都可以,xml在这方面虽然也能行,但毕竟不如数据库操作来的方便
      

  14.   

    那么少的数据没必要用数据库了,XML,Json甚至普通Txt都是不错的选择!
      

  15.   

    ADO格式的XML可能会更方便一些。