線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1523
推到 Plurk!
推到 Facebook!

請問如何取得WORD的拼字檢查

缺席
jtain
一般會員


發表:16
回覆:18
積分:6
註冊:2005-01-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-17 10:42:50 IP:211.21.xxx.xxx 訂閱
我想要透過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("EditSelectAll"));
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-04-21 10:29:59 IP:211.21.xxx.xxx 訂閱
 這是我在別的論壇上,獲得的答案,是一位叫做「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, 註解 無‧
系統時間:2017-12-12 20:24:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!