SETGT与SETLL是从文件开头开始查找还是从当前位置开始查找?
本帖最后由 Catal 于 2010-11-02 17:51 编辑
最近工作中突然产生的疑问,SETGT与SETLL是从文件开头开始查找还是从当前位置开始查找整个文件?查文档也没有找到相关的说明。于是来这里请教大家。先谢谢了。
看了大家的回答,先谢谢了。不过希望大家自己看一下我的问题。我并不是问定位是定位到记录上还是什么地方的。还是其它什么问题。有人觉得自己知道答案就把经过几条记录答一下。说下为什么或者出处。还有提醒不仔细看题的人指针也好游标也好都不会魔法,不可能凭空出现在某一点上。不理解的解剖下硬盘或者光驱什么的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
本帖最后由 insmile 于 2010-11-01 21:42 编辑
setgt,setll并不是使指针移动,read这些才是
像上面说的
我觉得应该是从5->9,如果两次都read的话
而且指针不是经过几条记录
,应该是直接过去了,setgt已经把路指明
SETLL,SETGT只是定位,你写一个小程式试一下不就知道了.
请大家仔细看一下我的问题,虽然我说的术语不标准但是,我觉得我问题的意思说明白了。其实我也没有其它意思。只是想搞明白这个问题而已。
第1次指针从A点走到B点这个没有问题。第2次指针请问是从A点走到B点?还是A点走到C点。也可以说,问题是第2次定位中间经过了几条记录。先谢谢大家了。
1<----A点
2
3
4
5<----B点 第1次SETGT
6
7
8
9<----C点 第2次SETGT
10
据我了解SETLL,记录指针是在匹配记录与前一条记录之间,通过READ或READP操作指针才指向记录,例如,键值为1至10,用5去SETLL,指针会在4、5之间,READ就指向5,READP就指向4,SETGT用法也基本上一样,用5 SETGT,指针在5、6之间,READ就指向7,READP就指向5。要根据自己的实际情况灵活应用。
大家好像误会我的意思了,我问的是SETGT与SETLL这两个命令是如何定位到记录的。打个比方我运行了SETGT这个语句后指针现在已经定位一条记录上了。我想知道的是指针是从文件开头走到当前的记录上,还是从上一条语句运行时指针的位置走到当前的记录上的?打个比方1-10条记录,运行SETGT前指针在第5条上,运行后指针走到了第9条上那么我想知道,指针是从1走到9还是从5走到9的。希望大家帮下忙。
我印象中文档中有说明的,
还有图表画出来,表明这个操作码怎么运作的
用*loval就是从文件头开始 当然你也可以自己定义一个key并且给它赋值 就是从你这个key指向的指针开始找
2楼的意思也就是说是从当前位置开始查找了?这个结论你是怎么证明的?还是文档里有提到?
从你定义的键值的位置开始查找