回 帖 发 新 帖 刷新版面

主题:问一个不知道菜不菜的问题,关于随机文件中记录的删除??

假如我有以下这么多个《随机文件(名叫xiaocai)在#1的位置》的记录,
记录1:1     1      1          1        1   
记录2:2     2      2          2        2
记录3:3     3      3          3        3
记录4:4     4      4          4        4
:
:
:
记录n:n     n      n          n        n
假如我要删去第3条记录
我用这样的方法(不是真正意义上的删除):
for i=4 to n      'n的值确定
   get #1,i,xiaocai
   put #1,i-1,xiaocai
next i 
这样子也只是把所有的3以后的记录上移了一位,而且还没有抹去最后一条记录,当然要是把最后一条记录弄成空的也容易,但它还是记录,
开始时总的记录a=lof(1)\len(xiaocai),还是没有变,自减1????不行吧!
求助高手!!!!
或者告诉一下有没有随机文件记录删除的指令!!!!谢谢啦!

回复列表 (共1个回复)

沙发

[quote]或者告诉一下有没有随机文件记录删除的指令![/quote]
答案是没有的.

在QB里,最常规的方法是:
新建一文件,
把有效记录复制过去,
删除旧文件,
新文件改名.

另: 自减1,是一个明智的办法,
怎么知道要不要减1?
是要减1还是减2还是更多?
或者哪个要减哪个不减?
怎么实现?自己考虑一下.

再: 提醒你一下,
在数据库FoxBase里
每一个记录最前面,有一个字符的位置是保留的,
如果要删除某条记录,把这个字符由空格变成chr$(9)就可以了.
然后数据库就认为这一条记录已经被标志过了,后面的操作会把它忽略.
实际物理删除需要使用PACK命令把整个数据库记录重刷.

我来回复

您尚未登录,请登录后再回复。点此登录或注册