VB程序员博客
八位数的电话号码 ,大概一千万 对应五个字符的 姓名
表结构:
八位数字,五位汉字
88888888,李白
怎么设计存储可以快速的,输入号码,就显示姓名
不用数据库 ,分段存储,谁能给出较快的代码
不用数据库就写在文件中了。
写在文件中后,一次读到内存中,用二分法查找。
存储在 list中!
改一下数据结构 改成:
88888887:xxx
88888888:xx
这样格式的…
窗体_load()
把所有信息写到 list
窗体内一个text 输入数字时 循环list = list.list(i) 前面8位 则 显示 list(i) ":" 后的数据
运行时 list 为隐藏
你可以把数据发给我! 窗体_load() 部分我可以几分钟时间就把字串改成代码形式发还给你!
可以CSDN 联系我
以前就用这样的方法 写过 进程查询 程序 现在没再弄这个了 不过其思路不错 适用LZ 所说情况
不过… 1千万… 应该会溢出的吧…
那么只有 把数据放在文本里 ..启动的时候把他们全部写到程序内..
因为数据太多 查询速度可能是个问题
LZ 把数据发给我实验看下吧!
me.email=cike_1111@163.com
发邮件后CSDN 通知下 我
一共13个字符,13字节
1000万条记录㗱3 = 130,000,000
如果全部读到内存中的话,那这个内存…………
不如这样吧,把你的文件以二进制的方式存放在一个文件中
这个文件中的头部分写一个索引结构,按照电话开头的数字做索引
例如我想找5字头的电话号码,索引结构中就记录从5开始的电话的字节位置,再按照电话号码第二位开始做索引……如此类推
用XML文件存储或在程序执行之前就读到内存中,建立个自己的类和集合,读到里面。
6楼能给个代码吗?我不太会用索引结构
目前这样的数据结构,空号不存储
全部不读入内存,文件操作
文件结构:
8位数字,五位汉字unicode
81234563汤姆
81242345敖德森.刘
谁能给一个,快速定位号码的完整算法
1.输入 81234563 显示汤姆
2.输入 汤姆
显示:
81234563
81234xxx 电话号码可能有多个
分不够再加,麻烦请给完整代码,谢谢
http://topic.csdn.net/u/20080127/17/e8154112-fa0f-4f94-b445-39de41cb63eb.html里回答了,
直接写到文件里面,然后做电话号码与文件内部存放数据的位置之间的换算,举例说明:电话号码假如从10000000生效,那么,10000000对应的就是seek(0),
10000001(八位数字,五位汉字)对应的就是seek(14),虽然可能会出现空号,但是这样检索应该会很快把?而且不需要数据库的说
具体就是file.seek((带查找的电话号码 - 起始电话号码)㗥핦𝡦
然后就可以file.read(lpbuf,单条数据长)了
对于空号的解决办法就是空号的位置用0×00填充,这样空号只是占个位子。只要读出的电话号码是0的话,就说明这个号码还未被使用
备注:文件打开并不会全部导入内存,也就是说,实际上最后读入内存的部分也就是file.read中的单条数据长了,只有14byte而已
不要意思,再补充一点,认为文件太大的话可以分多个文件存放,比如开头号码11放一个文件,12放一个文件,我想lz应该可以自己解决了吧?
将姓名按电话号码数字大小做向量排序?
写在ini文件里,读出时用API直接调出节点.