主题:[讨论]关于大数据寻址???
shanmeng
[专家分:0] 发布于 2007-12-31 03:57:00
例如下面(16进制的字节数据):
00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10
假设我要以 10h 做一个分割点把上面 数据分成5个段(但是又不分配内存来存储这些段的数据,将用上面的数据做存储单位)
如果类似上面的数据有成千上万的字节构成(而且每个段的字节数量都不一样),而我想按照段的方式区出或写入指定 段的第N个字节 那个改怎么快速的寻址呢?
回复列表 (共6个回复)
沙发
shanmeng [专家分:0] 发布于 2007-12-31 19:24:00
高手 都放假拉??
板凳
def [专家分:3380] 发布于 2007-12-31 20:42:00
Sorriest!!!
没有人能看懂......
是不是可以用单向链表???结构:
下一个数据地址 数据长度 数据(不定长)
3 楼
def [专家分:3380] 发布于 2007-12-31 20:43:00
再用一个表头来做索引?
4 楼
shanmeng [专家分:0] 发布于 2008-01-01 03:32:00
我的意思是类似自己写个支持多行和写出文件(.txt)编辑筐控件!!!!
编辑筐的数据就直接以写出的数据存储的(类似下面),
00 00 00 0D,0A 00 00 00 0D,0A 00 00 00 0D,0A 00 00 00 0D,0A 00 00 00 10
但是在我修改编辑筐的数据的时候(假设我要修改第2行的第2个字节),
就必须对编辑筐的数据先进行循环判断来确定第2行的第2个字节具体是在这段数据的第几个位置?如果这个数据大的话,这样寻找修改位置起不是非常没效率!
如果用数组来保存1行分配1个数组,这样做读写速度是快了,但写出文件的时候要吧这么多数组给拼接起来,也非常没效率!
再如果是给这些数据定义一个表数组,存储每行的头个字节地址,但如果我在第1行内增加或删除1个字节数据,那不是要把后面的每个,用来定位的表数组存储地址都要+1或-1,这样也非常没效率
我想了好久都想不到怎么样可以高效率的,以第几行第几咧的方式取得指向数据的真正位置
5 楼
DriEr [专家分:60] 发布于 2008-01-01 17:57:00
定位行列为嘛用循环,直接给出位置(坐标)不就行了。
6 楼
shanmeng [专家分:0] 发布于 2008-01-01 18:22:00
首先新的一年祝大家身体健康,恭喜发财!
看来就只这几种方法啦??? 最可行的就只有 用循环判断来定位????
就没有个比较理想的方法了吗!!希望高手指点
我来回复