我做了一个小软件里边有百十条数据,用自定义数据文件好还是用mdb数据库好 我做了一个小软件里边有百十条数据,经常读取,索引很少。用自定义数据文件好还是用mdb数据库好 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sqlite也成,实际上,如果只有这么点的话,普通的文本也没啥吧? 百十条,ini或纯文本或clientdataset就行了吧 百十条信息,没必要用数据库,用文本或是xml就可以了。 这么少的数据用结构序列化或直接用HashedStringList就可以了,HashedStringList的优点是速度够快可以随便添加数据,如果有多个字段的话可以定义10行为一组,每行记录不同的字段,每10行为一条记录,速度快操作方便,用量也可以,相当于内存表了 纯文本就行,用TStringList加载并排序,二分法查找只是瞬间的事情。 插个题外的:我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!而改用Memo.lines.loadfromfile快了很多,但也需要约30秒! 可以使用輕便的 TClientDataSet 之.公事包.模型......只需要在第一次使用時先自定義數據結構以 SaveToFile 函式存入一個 cds 檔......之後在程序以 LoadFromFile 函式讀入數據...以 SaveToFile 函式存入數據來操作...... 插个题外的:我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!我做过测试TStringList在1w以内,一般情况下,速度是秒杀。如果大于2w就不需要考虑了。如果你要用控件加载,最好加上beginupdate,否则控件刷新会让你疯掉。 插个题外的:我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!我做过测试TStringList在1w以内,一般情况下,速度是秒杀。如果大于2w就不需要考虑了。如果你要用控件加载,最好加上beginupdate,否则控件刷新会让你疯掉。肯定都是加了beginupdate的了。ListBox的items居然不是普通的Tstrings,可能就是它导致比Memo.lines慢的不过memo的还是有点慢 插个题外的:我用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; 插个题外的:我用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,应该会快很多,但是显示需要完全自己实现了 晕死了,又不是要直接显示出来,用什么StringList和memo啊,刷新显示的话速度会慢死的,当然几百行是没什么问题的,关键是memo每行有字符数量限制,如果超过长度的话就会自动断到下一行,直接用HashedStringList速度超快,我实测70万行数据只要5秒内。 如果是增,删,改,查等操作,建意还是用数据库吧Access或Sqllite都可以,xml在这方面虽然也能行,但毕竟不如数据库操作来的方便 那么少的数据没必要用数据库了,XML,Json甚至普通Txt都是不错的选择! ADO格式的XML可能会更方便一些。 有关strtoint()异常 如何将基于 c/s结构的程序变为b/s 结构的程序? C/S结构非法关机问题 怎样将WebBrowser设为透明,以显示出后面的背景图? EXCEL报错:Class does not have a default property 那里有fastreport 注册版下载??????/ 关于多文档程序的子窗口的问题! 有关操作符"and"的使用,请高手指点! 现在到哪下载最新的Delphi控件 csdn里已经解决的问题都跑哪里了??原来可是一万多条呢,现在怎么只有100条了?斑竹或者谁知道告诉一声,谢了 求助 怎么修改系统文件?
插个题外的:
我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!
而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!
插个题外的:
我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!
而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!
我做过测试
TStringList在1w以内,一般情况下,速度是秒杀。如果大于2w就不需要考虑了。
如果你要用控件加载,最好加上
beginupdate,否则控件刷新会让你疯掉。
插个题外的:
我用Listbox.items.loadfromfile一个近40M约40万行的文本,需要5-8分钟!
而改用Memo.lines.loadfromfile快了很多,但也需要约30秒!
我做过测试
TStringList在1w以内,一般情况下,速度是秒杀。如果大于2w就不需要考虑了。
如果你要用控件加载,最好加上
beginupdate,否则控件刷新会让你疯掉。肯定都是加了beginupdate的了。
ListBox的items居然不是普通的Tstrings,可能就是它导致比Memo.lines慢的
不过memo的还是有点慢
插个题外的:
我用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;
插个题外的:
我用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,应该会快很多,但是显示需要完全自己实现了