恢复FoxBase数据库被删除记录的一种方法

Author: 江西 范明之 Date: 1996-10-18

        例1、C:\FOX\ZK.DBF,文件长度为61690(F0FAh),828(033Ch)条记录,用DELETED、PACK命令将65条记录删除,剩余763(02FB)条记录,其恢复操作分为三步:
        一、恢复文件记录数
        1.C:\DOS>PCTOOLS(回车)(运行工具软件),击F10键进入文件管理菜单;
        2.选ZK.DBF所在的C盘,再选FOX目录;将光标杠移至ZK.DBF;
        3.击E键进入文件编辑状态;再按F1进入文件HEX和ASCII码状态;
        4.用PgUp键翻至文件头(标志:03),击F3键,将4-7字节(此处放置数据库文件记录数)的:FB 02(763条)改为3C 03(828条);
        5.按F5存盘;按Esc键退出。
        二、恢复文件长度
        1.击F3键进入磁盘管理菜单;击E键进入磁盘编辑状态;
        2.选C盘,击F2键激活磁盘扇区选择菜单;
        3.选R(根目录扇区),用PgUp、PgDn找FOX子目录项,查得子目录FOX起始簇(26-27字节)内容是:03 07,将其倒置值0703h转化为十进制是1795。
        4.击F2键,选C项,输入簇号1795,进入FOX子目录区:用PgUp、PgDn寻找ZK.DBF,注意:该文件名0字节被改为E5,此处一定要仔细分析和确定是否为ZK.DBF的文件目录项;
        5.找到后,击F3键,再击F1将光标切换至ASCII码栏,输入大写字母Z;
        6.按F5存盘,退出PCTOOLS。
        三、恢复该文件在文件分配表中的簇链
        1.C:\FOX>DEL ZK.DBF(回车);
        2.C:\DOS>PCTOOLS(回车);击F3键进入磁盘管理菜单;
        3.击U键进入文件恢复操作:选C盘FOX目录,选刚被删除的文件:?K.DBF @;
        4.击G键进行恢复操作:将“?”号改为Z,按F1键自动恢复,击Esc键退出。
        恢复操作完成。
        进入FoxBase状态,用BROW命令浏览,发现被删除的65条记录全部恢复。
        例2、ZAP命令删除C:\FOX\ZK.DBF全部记录后的恢复操作如下:
        一、同上第一步,还要找到文件头结构尾的字节“1A”,将“1A”改为“20”(空格)。
        二、类似上第二步,不要修改0字节,将放置文件长度的28-31字节内容改为FA F0 00 00。(如果忘记文件长度实际值,可将一估计值填入,估计值大于实际值,则恢复后,文件中含有非记录内容,将其删除即可;估计值小于实际值,恢复记录内容不全,要返回操作。)
        三、同上第三步。