全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2861
推到 Plurk!
推到 Facebook!

再問文字轉拼音

答題得分者是:ddy
bookworm
中階會員


發表:63
回覆:161
積分:82
註冊:2002-08-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-08 10:38:28 IP:211.76.xxx.xxx 未訂閱
參考了前幾篇ddy版主分享的程式,再加上以下這篇國字-注音對照表 http://input.cpatch.org/cinput/phonetic.txt 很想照著ddy版主的提示,利用查表的功能來寫一個轉換程式 無奈看了半天,我發覺我只會利用資料庫,這種文字檔的查表還是參不透 如果哪一位前輩可以「明示」,感激不盡! 此外再厚著臉皮問更深入一點,在查表過程中不是一個注音符號對一種字母而已,像漢語拼音ㄩ加ㄥ的音不會等於ㄩㄥ的音,所以還得加入如ㄧㄚ、ㄨㄞ、ㄩㄢ等22種組合,這樣在表格上是不是得做進一步的修改?謝謝! ======================= 二星級新手,問基礎問題請勿見笑 ^^
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-08 15:23:11 IP:61.59.xxx.xxx 未訂閱
bookworm  先謝謝你的支持    你是不是想寫中文<-->注音 的轉換程式? 如果是,那麼和我所po 的那一篇,做法上是有一些差異的 big5<--->中文碼,它是一對一的表格 但是注音它是一對多的,一個音可能會有其它雷同的字 甚至一個字也會有許多音    輸入注音符號查中文,可以提供選擇(將同音的列舉出來) 換言之,也可以在文字檔中搜尋某個字出現之處,取得其name (phonetic.txt 此table 的格式屬 Name=value 的格式)    如果你對文字檔搜尋不是很熟悉,也可自行處理,將其import 至資料庫 方法不只一種,加油囉 < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8147403&CC=182217">
bookworm
中階會員


發表:63
回覆:161
積分:82
註冊:2002-08-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-11 00:06:32 IP:211.76.xxx.xxx 未訂閱
可不可以再多提示一點這種Name=value的文字檔,該怎麼處理呢? 我翻書看了文字檔當table,裡面只有使用bde的範例,ado也可以將這整個txt 當table嗎? 一字多音的問題我想採取的是都轉拼音,然後每筆間用特殊符號隔開,由使用者自行選擇。畢竟很少有人需要整篇都轉成各式拼音方式吧? ======================= 二星級新手,問基礎問題請勿見笑 ^^
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-11 11:28:26 IP:61.218.xxx.xxx 未訂閱
引言: 可不可以再多提示一點這種Name=value的文字檔,該怎麼處理呢? 我翻書看了文字檔當table,裡面只有使用bde的範例,ado也可以將這整個txt 當table嗎? 一字多音的問題我想採取的是都轉拼音,然後每筆間用特殊符號隔開,由使用者自行選擇。畢竟很少有人需要整篇都轉成各式拼音方式吧?
我寫了個範例,輸入文字,取得所有注音,你可以將其改良 你去看看 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26971 你當然是是可以用ado 連text,透過ODBC Microsoft Text Driver 不過這樣子的效能可能沒有將資料轉進資料庫再存取來得好 TString 裡的Lines 的Name 就是 Name=Value 取Name 所以Name=Value 可以用TString 來取得 發表人 - ddy 於 2003/03/11 11:36:17
bookworm
中階會員


發表:63
回覆:161
積分:82
註冊:2002-08-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-12 23:51:14 IP:211.76.xxx.xxx 未訂閱
報告ddy版主,您寫的範例我參考了,不過還有些問題: 您寫的程式我參考過了,看了程式碼測了一下,發現如果當同音字太多擠成很多行時,第二行以上的字在查詢就沒有辦法出現注音。這種方式有辦法解決嗎?另外,我已經將txt轉至access了,目前正在很努力的想有什麼方式來做二次查表比較快~~~~@@ ======================= 二星級新手,問基礎問題請勿見笑 ^^
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-13 01:04:56 IP:211.74.xxx.xxx 未訂閱
不太了解你講的狀況耶^^  你講的是下方的 > 比較存取 > < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8147403&CC=182217">
bookworm
中階會員


發表:63
回覆:161
積分:82
註冊:2002-08-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-13 09:14:22 IP:140.122.xxx.xxx 未訂閱
ddy版主,你可以試試看下列幾個字:弈、囈等幾個字 看原本的txt檔會發現,這些字雖然是name=value,可是因為取得的是列數, 這些字和name不在同一列,所以會抓不到name的值。這可以改善嗎? 還有,我昨天想的是如果要加上如漢語拼音的查表,正如您提示的要用二次查表。注音的所有可能是1321(如果我沒記錯),要轉成各式拼音的話,就是1321*6種以上,當然是不可能用手動來產生啦! 今天早上一起來,忽然想到一種方式,就是我先把所有的「聲」先做成一個table,再將「韻」做成一個table,再設一個「調」的對應表,然後將資料一筆一筆取出來,配上韻和調,應該會大於所有注音的可能,這個叫table2。最後再將之前的txt檔轉成table1,一筆一筆取出,對照table2,然後將值填入table1的各式拼音的欄位,就可以將table2刪掉啦! 不過我現在滿腦子都是asp的語法,要如何轉成delphi,回家再翻書想想 @@ ======================= 二星級新手,問基礎問題請勿見笑 ^^
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-13 09:39:58 IP:61.218.xxx.xxx 未訂閱
呵…bug 被你發現了    沒有注意到讀進來後,會自動換行 將RichEdit1.WordWrap 屬性設為 False 就行了^^ 謝謝你的用心啦~~    其它網友若有下載此範例的   http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26971 請自行修改 RichEdit1.WordWrap 設 False         發表人 - ddy 於 2003/03/13 09:43:22 發表人 - ddy 於 2003/03/13 09:50:59
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-13 11:43:00 IP:61.218.xxx.xxx 未訂閱
bookworm 你提到漢語拼音的查表,那麼提供你此link    這是漢語拼音的表格   http://input.cpatch.org/input/pinyin/pybox.zip    有這個表,你應該就不用費力的去做轉成各式拼音    
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-13 11:45:19 IP:61.218.xxx.xxx 未訂閱
上篇所下載的檔案,其表格內容為
an        ㄢ
an        鵪
an        媕
an        侒
an        盦
an        峖
an        痷
an        腤
an        萻
an        韽
an        垵
an2        雸
an2        玵
an2        啽
an3        俺
an3        唵
an3        晻
an3        堷
an4        暗
an4        案
an4        岸
an4        按
an4        黯
an4        菴
an4        闇
an4        犴
an4        豻
an4        匼
an4        桉
an4        洝
an4        荌
an4        錌
an4        匎
an4        婩
an4        儑
ang        ㄤ
ang        骯
ang        腌
ang2        昂
ang2        卬
ang3        軮
ang4        盎
ang4        醠
它是以Tab 做為區隔,可以先用程式讀入,再行將Tab (#9) 置換為'=' 發表人 - ddy 於 2003/03/13 11:54:25
系統時間:2024-04-24 7:01:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!