2009年10月25日

[程式]C#.NET Chinese Word Translate 繁簡中文轉換

最近剛好遇到有人需要做大量的繁簡轉換,於是就找了一些資料
弄了一個 C#.NET 的繁簡轉換程式,方便大量批次作業使用的
我還沒學會應該要怎樣貼出漂亮的程式碼,還請多包涵 ...

基本的功能是採用 MS-Office WORD 開放的功能來做轉換
所以不管是開發的機器,還是安裝好要執行的機器上
都必須要有安裝 MS-Office WORD 才能執行

不囉唆,首先,要先加入 Word 的參考,
這邊是使用 Word 2003 的版本,所以是要找
Microsoft.Office.Interop.Word 的 11.0 版本

加入後,先新增一個類別(Class)用來翻譯,名稱就叫做 WordTranslateClass 吧
在類別中先加入下列內部變數:
    private _Application m_objWord = null; // Word App
    private Document m_objDocument = null; // Word Doc
另外,準備一些承接用變數:
    private object m_t = Missing.Value;
    private object m_nt = Missing.Value;
    private object m_dt = Missing.Value;
    private object m_v = true;
    private object m_sc = 0;
    private object m_of = Missing.Value;
    private object m_rd = Missing.Value;
接下來,先產生一個初始化物件的函式,就叫做 Initial() 好了
    // 產生新的 Word 物件
    m_objWord = new Microsoft.Office.Interop.Word.Application();
    // 使用 Word 物件 -> 開啟新文件
    m_objDocument = m_objWord.Documents.Add(ref m_t, ref m_nt, ref m_dt, ref m_v);
有了初始化,當然也要有釋放資源用的函式,就叫做 Release() 吧
    // 關閉 Word 物件
    if (m_objWord != null)
    {
        m_objWord.Quit(ref m_sc, ref m_of, ref m_rd);
    }
    // 釋放文件
    if (m_objDocument != null)
    {
        m_objDocument = null;
    }
    // 釋放 Word 物件
    m_objWord = null;
這樣,只要在程式的開始與結束加入 Initail() 與 Release() 就能正常使用了
接下來,要準備來源字串與目標字串:
    private string m_strSource;
    private string m_strResult;
當然,設定與取得字串的 SetWord() 以及 GetWord() 也要加上
這邊應該就不用貼程式碼了吧?XD 自己試著加看看 ~
(Hint : Set to Source String, and Get from Target String)

都準備好了以後,就是最核心的轉換工作了
轉換時,必須要依序傳入三個變數 - WdTCSCConverterDirection, bool, bool
第一個是決定繁轉簡還是簡轉繁
第二個是決定是否使用完整轉換通用運算式,如果不是則會逐字轉換
最後一個則是只有將簡體中文轉譯成繁體中文時,才可以使用

依照上述規則,可以產生底下的轉換函式 TransWords()
// 繁體轉簡體
public void TransWords(WdTCSCConverterDirection theType, bool theCommonTerms, bool theUseVariants)
{
    if (m_objWord == null)
    {
        Console.WriteLine("m_objWord == null");
        return;
    }

    if (m_objDocument == null)
    {
        Console.WriteLine("m_objDocument == null");
        return;
    }

    // 將輸入字串複製進去文件
    m_objWord.Selection.TypeText(m_strSource);

    // 將文件中的字串轉換
    m_objWord.Selection.Range.TCSCConverter(theType, theCommonTerms, theUseVariants);

    // 選擇目前文件
    m_objWord.ActiveDocument.Select();

    // 將轉換好的字串複製出來
    m_strResult = m_objWord.Selection.Text;

    // 清除文件內文
    m_objWord.Selection.Text = "";
}
怎樣,很簡單吧 XD

回到原本要工作用的 Form 內,先加上內部變數,並且 new 出來
就叫做 WTC 吧 XD
    WordTranslateClass WTC = new WordTranslateClass();
然後在 Form_Load 的事件中加上 Initial()
為了避免意外發生,使用了 try ... catch 保障一下 :P
    try
    {
        WTC.Initial();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
這樣物件就可以正常使用了,噢,當然別忘了 Release()
建議放在 Form 的 Closing 事件中
    WTC.Release();
如果忘記釋放掉,會一直在記憶體中殘留 Word 的執行緒
佔用的記憶體就不會自動釋放,一定要小心喔!!

現在,要做繁簡轉換,只要依照下列三步驟就可以了:
    WTC.SetWords( "你想要翻譯的字串" );
    WTC.TransWords(WdTCSCConverterDirection.wdTCSCConverterDirectionTCSC, true, true);
    string 翻譯好的字串 = WTC.GetWords();
你可以嘗試放在某按鈕上,或是放到迴圈中測試也行
如果有需要,也可以與 ADO.NET 的物件作互動
大量批次的翻譯某 A 欄位的內容到 B 欄位這樣
假使真的太大量的批次,更可以配合多執行緒的方式
或是 BackgroundWorker 之類的方式製作背景作業
這方面的技巧就不在這多說了,不然會講不完(笑)

啊,如果到這邊還是有無法編譯過的問題,或許是因為忘了加入某些 namespace
檢查看看是否都有 using 以下的 namespace :
// add using namespace
using Microsoft.Office.Interop.Word;
using System.Reflection;
都加上了,裡論上應該就能順利執行了 ^_^

就醬 ノシ

2009年10月22日

[分享]2009秋季新番第二輪

續前文,秋季動畫還有很多不錯的

首先,追了兩期一百多集的動畫:しゅごキャラ!(守護甜心)

意外地出了第三期,完全超過原作的進度,原本應該結束的動畫
這樣強硬的延長,會變成怎樣呢?(笑)
如果編劇沒有換人的話,應該還是有一些可看性吧 ... hmm

一開始看到還嚇了一跳,以為這東西變成真人版呢(汗)
原來是本篇只剩下中間十分鐘左右,前後都被"其他東西"填滿了
一開始真人部份當然是跳過(笑)
可愛版的笑話橋段還不錯看(大笑)
本篇去掉OP/ED只剩下一點點,應該是把一集的分量,做兩集用吧
後面也有真人亂入,真是不習慣 ... 一整個萌不起來 orz

另外,水樹奈奈好像每次演唱會都能出單曲,真厲害 ... 啊,離題了XD
總之,還是列入會追的動畫 ^_^

接下來,正在看的是:夢色パティシエール(夢色蛋糕師)

這是由松本夏実的漫畫作品改編的動畫
跟守護甜心有點類似,都是後面會"跟著一個東西"的設定
努力完成夢想,勵志型的兒童卡通(針對國小生為主的觀眾)
バニラ好可愛啊 ~~~ ... ......

奇怪,我怎麼這麼喜歡看小朋友的動畫(抓頭)
無論如何,這部動畫也是不錯看,已列入名單中

接下來,正在看的有:生徒會の一存(學生會的一己之見)

這東西原本並沒有注意到,是因為看到ニコニコ動画上面的短片:





結果就不小心被會長萌到了(炸)
這部作品的類型有點令人意外,簡單形容就是像幸運星或是旋風管家一樣的吐槽動畫
如果看過的動畫作品不夠多,很可能會錯過梗而不自知唷(笑)
ネタ多到爆啊~~~~

看在會長這樣萌的份上(不管是造型或是聲音),承認列入名單中(蓋章)

這次也介紹三部片好了,還有很多動畫還沒時間看
先醬 ノシ

2009年10月16日

[隨想]Limit of people (人的極限)


<Limit of people>
<人の限界>
<人的極限>
Everyone has limit.
ひとは限界がある
人人都有極限

Someone challenge it.
ある人はそれをチャレンジする
有的人選擇挑戰它

Someone stuff it.
ある人はそれを詰める
有的人選擇塞滿它

Slime Metor
スライムメテオ
史萊姆流星
註:若英日語有誤請指教。

2009年10月15日

[筆記]Windows XP Pagefile Setup (分頁檔設定)

最近看到很多人在重新安裝電腦,記憶體也增加到了 2~4 GB 不等
雖然記憶體增加了,不過相信有很多人,並不知道 XP 安裝好之後
預設的分頁檔設定,並沒有按照最佳化的方式去做,而是以最小資源去設定的

拿文件上的說明為例,最小值應為記憶體的 1.5 倍,最大值應為最小值的 3 倍
也就是說,如果你有 1 GB (1024 MB) 的 RAM
最小分頁應該設定在 1536 MB (1024 x 1.5)
而最大分頁應該設定在 4608 MB (1536 x 3)

不過,這樣設定會造成 pagefile.sys 佔用同樣多的硬碟空間,要注意
如果 C: 的空間吃緊,可以將分頁設定在其他比較空曠的磁碟分割中
並且設法讓分頁檔在硬碟中是佔用連續的區塊,這對存取速度上有影響

那如果裝滿 4 GB 的 XP(32-bit) 應該要怎樣設定呢?

事實上,XP 能夠規劃的記憶體量,只有 3.25 GB (3328 MB) 而已
(簡單說就是系統保留住造成的,一切都是微軟的錯XD)
所以最小分頁只需要 4992 MB 就夠了

而最大分頁按照上述方法會暴增到 14976 MB,相當於 15G ... 囧!!
事實上按照這樣設定後,硬碟中的 pagefile.sys 的檔案分佈很有可能被分段切開
即使是連續的,也鮮少有人會把應用程式開啟到 10GB 以上的常駐資料
因此我個人是把最大分頁設定成為 9984 MB (= 3328 x 3) 這樣

分頁檔的設定方式如下:

開始功能表 > 我的電腦 > 右鍵選"內容"
系統內容視窗 > "進階"頁籤 > "效能"群組按下"設定"按鈕
效能選項視窗 > "進階"頁籤 > "虛擬記憶體"群組按下"變更"按鈕
就可以開始設定分頁檔大小了,預設是放在 C:

數字填完後,要按下"設定"之後,變更才會被記錄
按下"確定"後,必須要重新開機,新的分頁設定才會生效

這類設定通常建議在硬碟相當空曠的時候做,分頁檔才不會散開
造成反效果,最好的時機應該為電腦重灌,或是硬碟整理完成後
希望這能讓大家的電腦更順暢,尤其是筆記型電腦

===

參考文獻:如何設定 Windows XP 中的效能選項

2009年10月14日

[分享]開發好創意的七件事

那麼,應該要怎樣才比較能夠做好腦力激盪呢?

再來看看下面這段影片



開發好創意的七件事

* 決定腦力激盪的目的

* 選定一個大家都是清醒的時間

* 擬定目標以及發想的重點

* 補充腦力食物,用食物解放思緒
(我認為這一點因人而異, 飲料也可)

* 找個舒適空間,有交流的空間

* 書寫刺激想法,紀錄網住靈感

最後這段話很經典:

扼殺士氣的最快方法,就是從不執行創意人的點子

認可創意人的點子,是最大的鼓勵

共勉之 ~

2009年10月13日

[分享]毀掉好創意的十句話

你還在亂用腦力激盪嗎? XD

來看看這段影片



毀掉好創意的十句話:

* 如果沒壞,就沒有必要修啊 ~

* 一直以來,我們都是這樣做的啊 ~

* 你知道這樣會增加多少工作量嗎 ~

* 這又不是你的責任!!(這又不是你負責的)

* 這不可能成功,因為 ~

* 已經有人試過了,不好!!

* 這太貴了 ~

* 國外已經有人做過了 ~

* 我們已經試過了 ~

* 什麼創意!!你們想得都一樣 ~

你是否覺得,這些話常常聽見?! XD

2009年10月11日

[分享]TED影片精選(中文)

最近看了一些 TED 影片,感觸良多,在這邊與大家分享

先來介紹 Johnny Lee 的 TED 演講 (中文翻譯)

紅外線並不是新的發明,但是新的創意卻可以將原有的技術

導向以前不容易辦到的事情,並且省下大量的成本



看完之後,連我都想要製作一些跟這有關的體感遊戲了說(笑)

有沒有人想要做新體感遊戲的啊~~(四處觀望) XD

===

接下來介紹一些比較嚴肅的話題 ...

拯救百萬兒童的簡單設計(中文)

在第三世界國家,困苦的生活是,我們在先進都市難以想像的

讓我想起麥可的那首歌 : Heal The World

有科學家們,不斷投入心力於改善他們的生活,以及市場經濟

讓我們來看看這一則故事:



玉米果然是蔬果中的黃金,真的是令人意外的發現 XD

玉米的經濟價值遠超過我的想像!!

人類在大量燃燒石油化學燃料的同時,也在限制自己的未來

其實只要多想想,很多解答事實上就在身邊啊 ~ (茶)

大家多注意環保吧~~

===

接下來,這主題應該很多人都很有興趣,尤其是為人父母的

教育扼殺創意(中文)

很多人都發現到,目前世界所盛行的教育制度,事實上是在扼殺創意

阻止了自由的思考與天賦的發揮

政客們口中所謂的教育改革,基本上也沒有朝向正確的方向來去改進

孩童們的升學壓力不減反增,補習教育盛行,農業與傳統產業沒落等

這些都是社會的潛在危機,不只是當政者應該重視,全民都應該重視

希望大家能花一點時間看看這段演說 ...



看完之後,相信很多人感觸都很深

"小朋友會願意去冒險與嘗試,如果他們不知道,就會用猜的"

"他們不怕犯錯"

"所有的孩子都是天生的藝術家,問題是,長大後如何保持?"

茱莉安的例子相當的經典,可惜並不是每個人都能遇到這樣的際遇

我自己也曾經是受害者,不斷地被壓抑,以及被否定,甚至被處罰

只因為我跟其他人不一樣,或者我不認同老師所說的事物以及看法

後半段說明關於智力的三件事情,我個人相當認同

希望能將這概念,轉化成為社會轉變的力量,散播出去

讓台灣的教育能夠突破傳統思維,更進一步的朝向真正的多元發展

"教育,是為了讓孩子們有能力應付多變與未知的未來"

發現自己的天賦,發現孩子們的天賦,並且讓它發光發熱!!

啊,舉例中的一段話我覺得很有趣

"一個男人在森林中說出了真心話,如果沒有女人聽見,男人還是錯的嗎?" XD

===

接下來,來聊一聊什麼是創意以及顧客需求

義大利麵醬汁的靈感(中文)

傳統的想法,往往會朝向製作"唯一的最好",而走入死胡同中

換句話說,就是要做出"完美"的,而且又能"通用"所有人身上

但事實上,人們心中最深處的渴望,往往連自己都沒有辦法說清楚

需求,是因人而異的,讓我們來看看這段義大利麵的故事(擦口水)



"There is no perfect to all, but there is a perfect to you."

令人意外地結果,不是嗎?(笑)

光是"想法"這種東西,就能造就結果的大不同

我想這也是 TED 所一直要推廣的東西吧 ^_^

"Make things fun. Make people happy."

當你們在製作一項產品的同時,是否也在追求一種"不存在的完美"

而忽略了眾多"屬於某人的完美"呢?(笑)

"頭腦不知道舌頭想要什麼" ← 這句很經典

拋開柏拉圖式的想法,拋開所謂的萬用法則

多多探究產品潛在的多樣性吧!!!!

噢,還有一句很經典的句子我也很喜歡

"對山葵裡的蟲來說,整個世界就是山葵" XD

===

接下來,很多人都會問的

什麼是顧客真正想要的(中文)

說到近代經濟的轉變,已經從"服務經濟"演變到"體驗經濟"的時代了

"最重要的是要忠於自我,如夜之繼日般奉行,也不致對人虛假"

這三句話真的很棒,來花點時間看看以下的演說 ...



演說中有幾句我還滿喜歡的

"不忠於自我最簡單的方法就是,不去了解你自己的傳統,也就是跟你的傳統斷絕關係"

"忠於自我的關鍵,就是了解你是什麼商業(產業)"

另外,我很喜歡演講中提到的,四個象限的那個概念

is true to itself / is what it says it is

is NOT true to itself / is NOT what it says it is

你正在做的是"真的真實",還是"假的造假"呢?(笑)

最後的總結也是相當經典,令人深省

===

延伸閱讀:邁向成功的 8 個秘密 ( by Richard St. John )

這是從一個前輩的 Blog 讀到的,其中我最喜歡的是 CRAP 那段 XD



很棒的三分鐘演說,在TED,不管有沒有時間,才三分鐘,看一看吧!!

以上 ノシ

2009年10月10日

[萌日]十月十日謂之萌,普天同慶!!

早上起來打開電視,閱兵等往年有的國慶新聞統統不見去
一時之間我還以為我睡到11日的呢XD
今年沒有國慶!!所以就用世界同萌日()代替!!



雙十節為台灣中華民國政府訂立的國慶日,每年的十月十日會盛大慶祝
而晚上會有令人難忘的煙火表演!!~~情侶們與小朋友的最愛~~
往年都會在台北舉辦,近年來才有在其他縣市舉辦過,像是高雄

不知道啥是國慶日的可以到政府的復古風官方網站上去看
(雖然我一直看不懂"薄海騰歡"是啥意思,該不會是渤海歡騰吧?)

既然今天是國慶日,那就請ミク來唱首國歌吧~~~~

2009年10月9日

[分享]2009秋季新番搶先看

今年秋天,有許多好看的動畫

首推的當然是とある魔術の禁書目録(中譯:魔法禁書目錄)
的番外篇:とある科学の超電磁砲(中譯:科學超電磁砲)

這是敘述利用科學力量,培養超能力者的學園都市中,所發生的故事
故事的主角是 御坂美琴(みさか みこと) Misaka Mikoto
等級五的電擊能力使,常盤台國中學生,人稱超電磁砲(レールガン)
但是卻被前男主角上條當麻稱為麻麻(ビリビリ)女(中譯:放電國中妹)
因為強大的電擊能力在當麻面前都會被"消去",而對主角有奇妙的對抗心態
每次遇到都會要求要分勝負XD

從禁書目錄的時候,就覺得這角色很有個性,沒想到可以當上主角
原作由另一個觀點來看同一個世界,感覺很有趣 ^_^
動畫的第一集表現得還不錯,本季應該會繼續追到完

好期待週末的第二話啊~~

接下來,要推薦的是:にゃんこい!

主角高坂潤平(こうさかじゅんぺい)有著對貓過敏的體質
只要有貓咪靠近到一定的範圍內就會打噴嚏,被妹妹稱為"貓感應器"XD
全家人都很喜歡貓,家中也有飼養一隻貓叫做ニャムサス(喵姆薩斯)
當然,因此主角也過得非常辛苦(到處都是過敏原)
有一天,主角突然聽得懂貓說話(驚!!)
從此開始了災難般的日子(笑)

這部還滿有趣的,暫時會繼續追下去

最後是話題作品:けんぷファー

主角瀬能ナツル(せのうなつる),不明所以的會變身成女生 ...
光看到這種設定就很無力了 orz
還不錯的是很多鏡頭都不會亂露內褲,感覺上應該不是賣肉的動畫
第一話大多是對打與角色介紹,看起來之後也會一直打來打去吧 =_=
對這部沒多大興趣,不過似乎有很多人喜歡這部(疑?)

ま~"喜好"這種東西本來就是因人而異的
這部片應該不會深入去追

先醬ノシ

2009年10月2日

[分享]化物語 - 蝸牛 - 八九寺真宵的相關動畫

最近,剛好聽到朋友提到化物語這部作品,就稍微查了一下

看到角色介紹的八九寺真宵(はちくじまよい)的時候,馬上就被萌到了

先說,我可不是蘿莉控(堅決貌)

なぞのこえ:「このロリコンどもめ!」

雙馬尾加上自信的笑容,腳上的OK繃,背上的背包,加上八重齒真的是萌點滿滿!!XD

二話不說,一口氣就看到第八話~~~~(好累 orz)

實際上這角色並沒有很萌,滿普通的,但是卻相當有趣,看到目前為止還是覺得這角色很有魅力

聽說撫子更受歡迎,等我看到後半段再說吧(笑)

既然知道了這部作品,當然要看看 Nico 上有哪些相關影片囉 ... 喔喔,一卡車!!

下面這個是原本的角色OP(片頭),以及CM(廣告)



原曲也很好聽喔 ^_^ 不愧是かがみんw

接下來這段影片有劇透(劇情洩漏),沒看過的請迴避XD

2009年10月1日

[心得]美國 NASA 關於 Morakot 颱風的紀錄

參考資料:NASA - 2009 - Morakot

由於本人英文不好,如果有更專業的人能幫忙補充會更感謝XD

最近大家都在關心颱風的事情,剛好之前有研究一下

在這邊分享給大家看看,國外的氣象資料有什麼不同

另外,以下節錄的日期是有時差的~~

===

August 4, 2009

Tropical Storm Morakot Forms in Western Pacific



熱帶性低氣壓在西太平洋海上形成

似乎在形成的初期,就有旺盛的熱對流(<-只是個颱風雛形)