明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

VFP編輯框中完成自動更正的方法

[摘要]摘 要:本文用實例介紹在VFP編制應(yīng)用系統(tǒng)時,通過特殊的技巧實現(xiàn)漢字詞組自動更正功能的方法! ≈黝}詞:VFP 自動更正 編輯  引言  我們在使用Word2000編輯一篇文檔時,可以在Word2000的工具菜單項中設(shè)置自動更正功能,這種功能的主要作用是在當(dāng)用戶編輯某一文檔時,當(dāng)輸入的某一詞組資料...
摘 要:本文用實例介紹在VFP編制應(yīng)用系統(tǒng)時,通過特殊的技巧實現(xiàn)漢字詞組自動更正功能的方法。

  主題詞:VFP 自動更正 編輯

  引言

  我們在使用Word2000編輯一篇文檔時,可以在Word2000的工具菜單項中設(shè)置自動更正功能,這種功能的主要作用是在當(dāng)用戶編輯某一文檔時,當(dāng)輸入的某一詞組資料不正確時,Word2000將會自動將輸入不正確的該詞組更正為正確的詞組內(nèi)容,這樣就大大提高了漢字輸入時正確性。在自動更正功能窗口時,可以看出自動更正窗口包括了一個正誤對照數(shù)據(jù)資料內(nèi)容,使用過程中用戶既可以使用系統(tǒng)中默認(rèn)的更正數(shù)據(jù)內(nèi)容,同時也可以增加或修改某一更正數(shù)據(jù)內(nèi)容,這樣在進(jìn)行文檔編輯操作時,利用這種功能使用起來非常方便。根據(jù)這種實現(xiàn)的原理,我們可以將這種功能運用到由VFP數(shù)據(jù)庫管理系統(tǒng)編寫的應(yīng)用程序中去,這樣可以提高系統(tǒng)在進(jìn)行文字編輯處理時文字書寫的正確性,下面筆者介紹這種文字自動更正功能的實現(xiàn)過程。

  系統(tǒng)原理

  為了能夠?qū)崿F(xiàn)正誤文字資料的互相替換功能,可以按照Word2000中實現(xiàn)更正方法的方式建立一個更正內(nèi)容數(shù)據(jù)庫,這個數(shù)據(jù)庫將收集整理那些在進(jìn)行文字書寫時容易發(fā)生錯誤寫法的詞組資料。但我們能夠想到,如果由用戶收集整理這個數(shù)據(jù)庫,受個人知識水平及應(yīng)用領(lǐng)域限制,收集整理工作量將會非常巨大,在實際中能夠真正實現(xiàn)并不容易。其實這一點完全可以利用Word2000系統(tǒng)中所收集整理的正誤對照資料內(nèi)容,把這一部分內(nèi)容轉(zhuǎn)換到實際需要生成的數(shù)據(jù)庫中,這樣可以大大提高收集整理工作的效率。這樣首先要把Word2000中存儲這些正誤對照資料的存放文件找出來,通過查找能夠知道這個文件存放文件夾C:\Windows\Application\Microsoft\office\下,文件名字為ms01033.acl,為了不影響Word2000的正確使用,可以把這個文件拷貝到C盤根目錄下并將該文件后綴名改為DOC,變成Word2000的文檔文件類型,然后使用Word2000打開這個文件,這里一般要提示插入OFFICE2000的安裝盤,用戶可以插入這個安裝盤進(jìn)行安裝編碼內(nèi)容,然后選擇一個合適的打開該文件的編碼,在這里需要選擇的是Unicode編碼,然后打開這個文件,可以看到打開的這個文檔中在后面部分存在著全部的漢字正誤對照文字資料,可以把這部分文字資料全部拷貝出來存放到一個純文本文件中,并把這個純文本文件命名為ZL.TXT,在這個文本文件中存放著Word2000中的全部中文詞語更正資料,然后就需要把這個文本資料中的內(nèi)容轉(zhuǎn)換到一個數(shù)據(jù)庫中去,在這里可以借助一個小程序?qū)崿F(xiàn)這種數(shù)據(jù)的轉(zhuǎn)換功能。

  新建一個數(shù)據(jù)表文件命名為ABC.DBF,這個數(shù)據(jù)表文件只包括兩個字段NR1,NR2字段都為字符型,寬度為30,建立這個數(shù)據(jù)表后,建立一個程序文件MAIN.PRG,程序內(nèi)容如下:

USE ABC
WJNR=FILETOSTR ("C:\ZL.txt")
WJNR=WJNR+" "
DO WHIL LEN (ALLT (WJNR))>0
NR11=SUBS (WJNR, 1,AT (" ", WJNR))
WJNR=SUBS (WJNR, at (" ", WJNR)+2)
NR22=SUBS (ABC, 1,AT (" ", WJNR))
WJNR=SUBS (ABC, AT (" ", WJNR)+2)
SELE ABC
APPE BLAN
REPL NR1 WITH NR11, NR2 WITH NR22
ENDDO

  運行這個程序后打開ABC.DBF數(shù)據(jù)表,我們可以看出Word2000下的全部的漢字更正資料都轉(zhuǎn)換到這個數(shù)據(jù)中,其中NR1中存放的是錯誤資料的內(nèi)容,NR2中存放的是對應(yīng)的正確資料的內(nèi)容,然后就可以利用這個正誤對照數(shù)據(jù)表中的內(nèi)容來實現(xiàn)文檔資料的自動更正功能了。

  具體實現(xiàn)的程序

  下面以一個簡單的例子,介紹這種更正功能在程序中的具體實現(xiàn)方法:

  新建一個表單,將數(shù)據(jù)表ABC加入該表單的數(shù)據(jù)環(huán)境中,然后在這個表單中放置一個文本編輯框EDIT1,調(diào)整這個編輯框到合適的位置,在這個編輯框中的數(shù)據(jù)源可以是一個數(shù)據(jù)表中的備注字段名稱,也可以是一個變量,用戶可以在這個編輯框中輸入一些的文字內(nèi)容,然后在這個編輯框EDIT1中的KEYPRESS事件中輸入如下程序代碼:

GBWZ=THISFORM.EDIT1.SELSTART&&取當(dāng)前光標(biāo)所在位置
IF GBWZ>4 &&
 THISFORM.LockScreen = .T.
 CXNR1=SUBS (THISFORM.EDIT1.VALUE, GBWZ-7,8)
 CXNR2=SUBS (THISFORM.EDIT1.VALUE, GBWZ-9, 10)
 CXNR3=SUBS (THISFORM.EDIT1.VALUE, GBWZ-11, 12)
 CXNR4=SUBS (THISFORM.EDIT1.VALUE, GBWZ-13, 14)
 CXNR5=SUBS (THISFORM.EDIT1.VALUE, GBWZ-15, 16)
 CXNR6=SUBS (THISFORM.EDIT1.VALUE, GBWZ-17, 18)
 CXNR7=SUBS (THISFORM.EDIT1.VALUE, GBWZ-19, 20)
 CXNR8=SUBS (THISFORM.EDIT1.VALUE, GBWZ-21, 22)
 &&以上程序代表取當(dāng)前光標(biāo)前4-11個漢字為到不同的變量中,因為生成的數(shù)據(jù)表中的正誤資料字?jǐn)?shù)從4個到11個,所以要分別進(jìn)行比較。
 SELE ABC
  LOCA FOR ALLT (CXNR1)= =ALLT (NR1) OR ALLT (CXNR2)= =ALLT (NR1) OR; ALLT (CXNR3)= =ALLT (NR1) OR ALLT (CXNR4)= =ALLT (NR1) OR;
  ALLT (CXNR5)= =ALLT (NR1) OR ALLT (CXNR6)= =ALLT (NR1) OR;
  ALLT (CXNR7)= =ALLT (NR1) OR ALLT (CXNR8)= =ALLT (NR1)
  &&在正誤對照數(shù)據(jù)庫進(jìn)行查找
  IF FOUND()&&如果找到了就執(zhí)行替換操作
   ZDZ=LEN (ALLT (NR1))
   THISFORM.EDIT1.VALUE=SUBS (THISFORM.EDIT1.VALUE, 1,GBWZ-ZDZ)+;
    ALLT(ABC.NR2)+SUBS(THISFORM.EDIT1.VALUE,GBWZ+1)&&接上一行
   THISFORM.EDIT1.REFRESH
   THISFORM.EDIT1.SELSTART=GBWZ
  ELSE
   THISFORM.EDIT1.SELSTART=GBWZ
  ENDIF
 THISFORM.LockScreen = .F.
ENDIF

  全部內(nèi)容設(shè)置輸入完畢后,運行這個表單,并在表單中的編輯框中輸入文本信息,當(dāng)用戶輸入一個錯誤詞組資料時,編輯框中的內(nèi)容將會被自動更正為正確的詞組資料,使用方法同Word中的使用方法相同,這樣就我們就實現(xiàn)了在編輯框中輸入的漢字自動更正功能。當(dāng)然在系統(tǒng)中還可以增加對更正數(shù)據(jù)的修改、添加等操作,這樣系統(tǒng)功能使用起來會更加方便。

  結(jié)束語

  本文提供了在VFP編輯框中實現(xiàn)文字資料錯誤內(nèi)容自動更正的實現(xiàn)方法,例程并沒有考慮容錯性,根據(jù)這種原理可以編寫出更加完善實用的應(yīng)用系統(tǒng),有興趣的讀者可以一試。