請問如何取得WORD的拼字檢查 |
缺席
|
jtain
一般會員 發表:16 回覆:18 積分:6 註冊:2005-01-03 發送簡訊給我 |
我想要透過WORD去判斷一個字串,是否為合法的單字
我是寫成底下這段程式,但是當有近似字時,是可以透過選『全部變更』後的字串來判斷, 但如果是完全沒有符合時,根本不能選『變更』... 還有其他取得的方法嗎? Variant OLEObject; OLEObject = CreateOleObject("Word.Basic"); OLEObject.Exec(Procedure("AppShow")); OLEObject.Exec(Procedure("FileNew")); aStr.printf("%s",s2); OLEObject.Exec(Procedure("Insert")< OLEObject.Exec(Procedure("ToolsSpelling")); //執行 WORD 拼寫檢查 aStr2=OLEObject.OlePropertyGet("Selection"); strcpy(b1,aStr2.c_str()); MyKillEnter(b1);//因為取得的傳回值會多了一個 enter 字元,所以特別過濾 enter 字元 if(strcmp(s2,b1)!=0){ ........................... }
------
無所不在 |
jtain
一般會員 發表:16 回覆:18 積分:6 註冊:2005-01-03 發送簡訊給我 |
這是我在別的論壇上,獲得的答案,是一位叫做「tong <!-- HACK ADD -->」解答的
[code cpp] void __fastcall TMainForm1::Button2Click(TObject *Sender) { AnsiString str("thiosulfuric"); Variant wd = Variant::CreateObject("Word.Application"); wd.Exec(PropertySet("Visible") << false); wd.OlePropertyGet("Documents").Exec(Procedure("Add")); wd.OlePropertyGet("Selection").Exec(PropertySet("Text") << str); wd.OlePropertyGet("Options").Exec(PropertySet("CheckGrammarWithSpelling") << true); wd.OlePropertyGet("Options").Exec(PropertySet("SuggestSpellingCorrections") << true); wd.Exec(Procedure("CheckSpelling") << str); Variant Count = wd.OlePropertyGet("ActiveDocument").OlePropertyGet("SpellingErrors").OlePropertyGet("Count"); wd.Exec(Procedure("Quit") << 0); if (Count > 0) MessageBox(Handle, str.c_str(), "單字錯誤", MB_OK); } [/code]
------
無所不在
編輯記錄
jtain 重新編輯於 2008-04-21 10:32:01, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |