二級考試:VFP6技巧二則

字號:

恢復(fù)丟失了的FPT文件
    由于誤操作,將自由表的備注文件刪除,致使自由表無法打開。遇到這種情況我們可采用下述方法解決:
    1.創(chuàng)建一個新的自由表,且該自由表只含一個字段,其類型為備注型。關(guān)閉該自由表,將其擴(kuò)展名為FPT的備注文件復(fù)制給誤刪除的自由表的備注文件,或?qū)⒃搨渥⑽募拿麨檎`刪除的自由表的備注文件即可。
    運(yùn)行下面的程序同樣也可以恢復(fù)丟失了的FPT 文件:
    accept ′請輸入丟失了.FPT文件的自由表名稱(不帶擴(kuò)展名):′ to namef
    namef=trim(namef)+′.bbb′
    crea dbf &namef (aa m)
    use
    dele file &namef
    2.用VFP低級文件函數(shù)創(chuàng)建一個空的FPT文件,原自由表即可打開。程序清單如下:
    accept ′請輸入丟失了.FPT文件的自由表名稱(不帶擴(kuò)展名):′ to namef
    namef=trim(namef)+′.FPT′
    hand=fcreate(namef)
    abc=repl(chr(0),3)+chr(8)+repl(chr(0),3)+′@′+repl(chr(0),504)
    =fwrite(hand,abc)
    =fclose(hand)
    return
    上述方法只是為丟失了FPT文件的自由表建立了一個新的FPT文件,原FPT文件中的內(nèi)容已經(jīng)丟失,無法恢復(fù)。在實(shí)際操作中若遇到這種情況,是恢復(fù)原來的FPT文件,若原FPT文件無法恢復(fù)時再采用上述方法。
    低級文件函數(shù)加密數(shù)據(jù)庫
    VFP有一個十分薄弱的環(huán)節(jié)就是數(shù)據(jù)庫的保密性差。由于.DBF文件都是敞開式的,甚至用DOS中最簡單的TYPE命令都可以瀏覽,因此,筆者從以下兩方面對數(shù)據(jù)進(jìn)行加密:
    1.在向自由表中增加數(shù)據(jù)時,就進(jìn)行加密,即更新自由表時就對數(shù)據(jù)進(jìn)行加密,在讀取數(shù)據(jù)時再解密。
    2.用VFP提供的低級文件函數(shù)進(jìn)行加密,加密后的文件無法打開、瀏覽,使用時,再執(zhí)行該加密程序即可將加密的自由表還原。
    **加密數(shù)據(jù)庫程序(同時也是解密程序)**
    set talk off
    close all
    clea
    @10,10 say ″請輸入要加密的自由表名(含擴(kuò)展名):″ get file1 defa ′ ′
    read
    handle=fopen(″&file1″,2)
    if handle<0
    @14,10 say ″不能打開文件!″
    =inkey(0)
    retu
    endif
    j=0
    do while .not.feof(handle)
    bb=fread(handle,1)
    cc=chr(mod(asc(bb)+128,256))
    =fseek(handle,j)
    =fwrite(handle,cc)
    ?asc(bb),asc(cc)
    j=j+1
    enddo
    =fclose(handle)
    close all
    retu