From 7f8fa2c34acf61d4002bcf13716cc7715e83af9f Mon Sep 17 00:00:00 2001 From: Alan Jui Date: Thu, 11 Apr 2024 22:46:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=20a400=20=E5=8F=8D=E5=88=87?= =?UTF-8?q?=E6=9F=A5=E6=8B=BC=E9=9F=B3(=E6=9F=A5=E5=B0=8F=E9=9F=BB)=20?= =?UTF-8?q?=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kong_Un_V2.db | Bin 3866624 -> 3866624 bytes Kong_Un_V2.sqbpro | 21 +- ...07\346\237\245\346\213\274\351\237\263.py" | 278 +++++++----------- docs/diagrams/SDD-000_DOMAIN_MODEL.md | 23 +- test_han_ji_cha_siau_un.py | 86 ++++++ tmp.md | 58 ++++ 6 files changed, 276 insertions(+), 190 deletions(-) diff --git a/Kong_Un_V2.db b/Kong_Un_V2.db index 203caa97bd2a47c0ec5696d42313692bff5f7fb6..eb290098db5415fd6c70941bf96a108ac893ba71 100644 GIT binary patch delta 660 zcmZusOKTHR7@bGb87G}2ZA@BiHDfeB)A)!QEhrR8u%#MkMG;Zjg$w-wx)OqmW3WO~ z2C0o;d{C){NO2aaw$#7j!o^vbn1DiExJnn^)VK)t!u>AieCIpgx!LRwIV*0yuPY!) z>XIaiB*`DeJ2(?dgacAM^S~{T>}!ZBd3}w}_nv_MTOW0)YNI@vjogx*uX0%F7G1q5 z$)!VDFdEhKeBhG5&q+UCb#eN!c#B2kf*Ka(=m=%cI|xr<&;N@T2e*L+ z=m9%H6ZC>U&<}Qj-CzLR4hF#x*aP;0JHVY_AJ`A>0(XO9&;s{>5pXZK4~&BQ!2{qy m@DO+yJOakR0Wc081&@Kp!4qHtJPDoxPlHMD40!e}2dzJ($0qv# delta 1274 zcmZ9~Sxj729DwnA&&&V=%mM?mU0~RzK#Nqimey#jiJCriQ5w^_q>b7V8v#?dM2j%P zGQ&PI7q~DiPbMb%qL~MxK8RWsm#VccRjZ8AZIrq%}+^((_ zwTog}POhSuo>V|l)MxqJ6tAwgNc_nmmke zCimc5$tHX|>BVDH_v1TL&3JsO0pFdUX*2tS$FhM!JU;b#*9m&WBGJ|DjVzZm!6mt*(hsj;27Jhm23kEP>R`W<*izY5Rl zKK!~fAs_!u;s#tv)Z(`ZJAM~Gh~LMr#UJ8w66azMCX|l@~@FBJU@H@{~nf8{AW0T7lt|+mr#Znmr#c`q8Q@xg=w%2 z&4XLfGFXOb109$?a5H8M$d%RsxiYi=Zp`Yx9<%%9N?Vkx5%%aU=!kL!!WngAPJ}BE zxsl!IiqvCXBu_5Q?_*rT-N(3ur>_pZecX-k^~yu|dl|UUdifoqpx1$gJ?&W3vmFCH zT$w2D$;6WG7A)lgO!_xL<6P2HiYE=RzpST&bRgvLfVwRee65TXAVORm*o-<#SE?=C+^_ZVC8TcPk9Fh)YinH~#;O zLVvXF3FBP!;u-xm)oYb!w08XGh^w3GL+#rQ^>~S2x8Gz-++*%GFGb8tDhV=?nJkn> z>6AfM%A_pHCL7twK~Bn{Tyjw!<&&E{
CREATE VIEW 小韻查詢 AS +CREATE VIEW 漢字查廣韻標音 AS SELECT + 字表.識別號, + 字表.字, + 字表.同音字序, + 字表.切語, + 字表.拼音 AS 漢字標音, + 字表.字義, 小韻表.小韻字, - 小韻表.切語, - 小韻表.拼音, 小韻表.目次編碼, 小韻表.小韻字序號, 小韻表.小韻字集, @@ -11,8 +15,8 @@ SELECT 切語上字表.聲母, 切語上字表.清濁, 切語上字表.發送收, - 切語上字表.聲母拼音碼 AS 聲母標音, - 切語上字表.切語上字集, + 切語上字表.聲母拼音碼 AS 上字標音, + 切語上字表.切語上字集, 切語下字表.韻系列號, 切語下字表.韻系行號, 切語下字表.韻目索引, @@ -26,10 +30,9 @@ SELECT 切語下字表.韻母, 切語下字表.切語下字集, 切語下字表.等呼, - 切語下字表.韻母拼音碼 AS 韻母標音 -FROM 小韻表 + 切語下字表.韻母拼音碼 AS 下字標音 +FROM 字表 +JOIN 小韻表 ON 字表.小韻識別號 = 小韻表.識別號 JOIN 切語上字表 ON 小韻表.上字表識別號 = 切語上字表.識別號 JOIN 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號; - - diff --git "a/a400_\345\217\215\345\210\207\346\237\245\346\213\274\351\237\263.py" "b/a400_\345\217\215\345\210\207\346\237\245\346\213\274\351\237\263.py" index d507d73..e411216 100644 --- "a/a400_\345\217\215\345\210\207\346\237\245\346\213\274\351\237\263.py" +++ "b/a400_\345\217\215\345\210\207\346\237\245\346\213\274\351\237\263.py" @@ -1,3 +1,4 @@ +import os import sqlite3 import sys @@ -129,21 +130,37 @@ def han_ji_cha_siau_un(cursor, han_ji): # 回傳字典列表 return dict_results -def query_table_by_id(table_name, fields, id): - # 執行 SQL 查詢 - cursor.execute(f"SELECT * FROM {table_name} WHERE 識別號 = ?", (id,)) - - # 獲取查詢結果 +""" +用 `漢字` 查詢《廣韻》的標音 +""" +def han_ji_cha_piau_im(cursor, han_ji): + """ + 根據漢字查詢其讀音資訊。 + + :param cursor: 數據庫游標 + :param han_ji: 欲查詢的漢字 + :return: 包含讀音資訊的字典列表 + """ + query = """ + SELECT * + FROM 漢字查廣韻標音 + WHERE 字 = ?; + """ + cursor.execute(query, (han_ji,)) results = cursor.fetchall() - + # 將結果轉換為字典列表 - dict_results = [dict(zip(fields, result)) for result in results] + fields = [ + '識別號', '字', '同音字序', '切語', '漢字標音', '字義', + '小韻字', '目次編碼', '小韻字序號', '小韻字集', '字數', + '發音部位', '聲母', '清濁', '發送收', '上字標音', '切語上字集', + '韻系列號', '韻系行號', '韻目索引', '目次', '攝', '韻系', + '韻目', '調', '呼', '等', '韻母', '切語下字集', '等呼', '下字標音', + ] + return [dict(zip(fields, result)) for result in results] - # 回傳字典列表 - return dict_results - -def query_table_by_field(table_name, fields, query_field, keyword): +def query_table_by_field(cursor, table_name, fields, query_field, keyword): # 執行 SQL 查詢 cursor.execute(f"SELECT * FROM {table_name} WHERE {query_field} LIKE ?", ('%' + keyword + '%',)) @@ -155,74 +172,38 @@ def query_table_by_field(table_name, fields, query_field, keyword): # 回傳字典列表 return dict_results - - -def query_ji_piau(han_ji): - table_name = "字表" - fields = [ - '識別號', '字', '小韻切語', '拼音', '字義', '上字表識別號', '聲母', '清濁', - '聲母拼音碼', '小韻識別號', '小韻字序', '韻母', '韻母拼音碼', '調', '四聲八調', - '拼音調號', '備註' - ] - query_field = "字" - result = query_table_by_field(table_name, fields, query_field, han_ji) - - if not result: - raise Exception("查詢沒有返回結果!") - - return result -def query_siau_un(ciat_gu): - table_name = "小韻表" - fields = [ - '識別號', '小韻字', '拼音', '小韻字集', '字數', '目次編碼', '切語', '小韻字序號', - '上字表識別號', '聲母', '聲母拼音碼', '清濁', - '韻', '等', '呼', '調', '舒促聲', '韻碼', '韻母', '韻母拼音碼', '四聲八調', '拼音調號', - '備註', '原有備註', '異體字', '其它備註' - ] - query_field = "切語" - return query_table_by_field(table_name, fields, query_field, ciat_gu) - - -def query_ciat_gu_siong_ji(han_ji): +def cha_ciat_gu_siong_ji(cursor, siong_ji): table_name = "切語上字表" fields = [ - '識別號', '發音部位', '聲母', '清濁', '發送收', '聲母拼音碼', '國際音標', '切語上字', '備註', + '識別號', '聲母識別號', '發音部位', '聲母', '清濁', '發送收', + '聲母拼音碼', '切語上字集', '備註', ] - query_field = "切語上字" - return query_table_by_field(table_name, fields, query_field, han_ji) + query_field = "切語上字集" + return query_table_by_field(cursor, table_name, fields, query_field, siong_ji) -def query_ciat_gu_ha_ji(han_ji): +def cha_ciat_gu_ha_ji(cursor, ha_ji): table_name = "切語下字表" fields = [ - '識別號', '韻碼', '韻母', '韻母拼音碼', '國際音標', '韻目', '舒促聲', - '攝', '調', '韻', '等', '呼', '切語下字', + '識別號', '韻母識別號', '韻系列號', '韻系行號', + '韻目索引', '目次識別號', '目次', + '攝', '韻系', '韻目', '調', '呼', '等', '韻母', + '切語下字集', '等呼', '韻母拼音碼', '備註', ] - query_field = "切語下字" - return query_table_by_field(table_name, fields, query_field, han_ji) + query_field = "切語下字集" + return query_table_by_field(cursor, table_name, fields, query_field, ha_ji) -def query_un_bu(han_ji): - query = """ - SELECT 字表.識別號, 字, 拼音, 字表.韻母, 字表.韻母拼音碼, 十五音韻母對照表.國際音標, - 韻碼表.攝, 韻碼表.目次編碼, 韻碼表.調, 韻碼表.韻, 韻碼表.等, 韻碼表.等呼, 韻碼表.呼 - FROM 字表 - LEFT JOIN 十五音韻母對照表 ON 字表.韻母 = 十五音韻母對照表.廣韻韻母 - LEFT JOIN 韻碼表 ON 字表.韻母 = 韻碼表.韻母 - WHERE 字 = ?; - """ - +def query_table_by_id(cursor, table_name, fields, id): # 執行 SQL 查詢 - cursor.execute(query, (han_ji,)) + cursor.execute(f"SELECT * FROM {table_name} WHERE 識別號 = ?", (id,)) # 獲取查詢結果 results = cursor.fetchall() # 將結果轉換為字典列表 - fields = [ '識別號', '字', '拼音', '韻母', '韻母拼音碼', '韻母國際音標', '攝', '目次', '調', '韻', '等', '等呼', '呼' ] - dict_results = [dict(zip(fields, result)) for result in results] # 回傳字典列表 @@ -230,115 +211,74 @@ def query_un_bu(han_ji): if __name__ == "__main__": - - # 整合前測試 - conn, cursor = connect_to_db('.\\Kong_Un_V2.db') - - # - siann_bu_results = query_sip_ngoo_im_siann_bu_tui_ciau_piau() - un_bu_results = query_sip_ngoo_im_un_bu_tui_ciau_piau() + # 確認使用者有輸入反切之切語參數 + if len(sys.argv) != 2: + print("請輸入欲查詢讀音之【切語】(反切上字及下字)!") + os._exit(-1) - # 關閉 DB - close_db_connection(conn) - sys.exit(0) - - # #============================================================================================ - # # 根據反切上字和反切下字來查詢台羅拼音 - # siong_ji = ciat_gu[0] - # ha_ji = ciat_gu[1] - - # # 顯示結果 - # os.system('cls') - # print('\n=================================================') - # print(f'欲查詢拼音之切語為:【{ciat_gu}】') - - # # 查詢反切上字 - # print('\n-------------------------------------------------') - # print('【切語上字】:\n') - # siann_bu = query_ji_piau(siong_ji) - # if not siann_bu: - # print(f'查不到【反切上字】:{siong_ji}') - # else: - # siong_ji_piau = query_table_by_id( - # '切語上字表', - # ['識別號', '發音部位', '聲母', '清濁', '發送收', '聲母拼音碼', '國際音標', '切語上字', '備註'], - # siann_bu[0]['上字表識別號'] - - - # # 確認使用者有輸入反切之切語參數 - # if len(sys.argv) != 2: - # print("請輸入欲查詢讀音之【切語】(反切上字及下字)!") - # os._exit(-1) + ciat_gu = sys.argv[1] - # ciat_gu = sys.argv[1] + # 檢查反切拼音是否有兩個字 + if len(ciat_gu) != 2: + print("反切用的切語,必須有兩個漢字!") + os._exit(-1) - # # 檢查反切拼音是否有兩個字 - # if len(ciat_gu) != 2: - # print("反切用的切語,必須有兩個漢字!") - # os._exit(-1) - - # # 連上 DB - # conn, cursor = connect_to_db('.\\Kong_Un.db') - - # # 根據反切上字和反切下字來查詢台羅拼音 - # siong_ji = ciat_gu[0] - # ha_ji = ciat_gu[1] - - # # 顯示結果 - # os.system('cls') - # print('\n=================================================') - # print(f'欲查詢拼音之切語為:【{ciat_gu}】') - - # # 查詢反切上字 - # print('\n-------------------------------------------------') - # print('【切語上字】:\n') - # siann_bu = query_ji_piau(siong_ji) - # if not siann_bu: - # print(f'查不到【反切上字】:{siong_ji}') - # else: - # siong_ji_piau = query_table_by_id( - # '切語上字表', - # ['識別號', '發音部位', '聲母', '清濁', '發送收', '聲母拼音碼', '國際音標', '切語上字', '備註'], - # siann_bu[0]['上字表識別號'] - # ) - # print(f"切語上字 = {siong_ji} (拼音:{siann_bu[0]['拼音']})") - # print(f"聲母:{siong_ji_piau[0]['聲母']} [{siong_ji_piau[0]['聲母拼音碼']}] IPA: /{siong_ji_piau[0]['國際音標']}/") - # print(f"(發音部位:{siong_ji_piau[0]['發音部位']} ,清濁:{siong_ji_piau[0]['清濁']})") - - # # 查詢反切下字 - # print('\n-------------------------------------------------') - # print('【切語下字】:\n') - # ji_piau = query_ji_piau(ha_ji) - # un_bu = [] - # if not ji_piau: - # print(f'查不到【反切下字】:{ha_ji}') - # else: - # un_bu = query_un_bu(ha_ji) - # print(f"切語下字 = {ha_ji} (拼音:{ji_piau[0]['拼音']})") - # print(f"韻母:{un_bu[0]['韻母']} [{un_bu[0]['韻母拼音碼']}] IPA: /{un_bu[0]['韻母國際音標']}/") - # print(f"攝:{un_bu[0]['攝']},調:{un_bu[0]['調']}聲,目次:{un_bu[0]['目次']}") - # print(f"{un_bu[0]['韻']}韻,{un_bu[0]['等']}等({un_bu[0]['等呼']}),{un_bu[0]['呼']}口呼") - - # # 組合拼音 - # tiau_ho_list = { - # '清平': 1, - # '清上': 2, - # '清去': 3, - # '清入': 4, - # '濁平': 5, - # '濁上': 2, - # '濁去': 7, - # '濁入': 8, - # } - # siann = siong_ji_piau[0]['聲母拼音碼'] - # cing_tok_str = siong_ji_piau[0]['清濁'] - # cing_tok = cing_tok_str[-1] - # un = un_bu[0]['韻母拼音碼'] - # tiau_ho = tiau_ho_list[ f"{cing_tok}{un_bu[0]['調']}" ] - - # print('\n-------------------------------------------------') - # print(f'【切語拼音】:{ciat_gu} [{siann}{un}{tiau_ho}]\n') - - # # 關閉 DB - # close_db_connection(conn) + # 連上 DB + conn, cursor = connect_to_db('.\\Kong_Un_V2.db') + + # 根據反切上字和反切下字來查詢台羅拼音 + siong_ji = ciat_gu[0] + ha_ji = ciat_gu[1] + + # 顯示結果 + os.system('cls') + print('\n=================================================') + print(f'欲查詢拼音之切語為:【{ciat_gu}】') + + # 查詢反切上字 + print('\n-------------------------------------------------') + print('【切語上字】:\n') + siong_ji_im = han_ji_cha_piau_im(cursor, siong_ji) + siong_ji_piau = cha_ciat_gu_siong_ji(cursor, siong_ji) + if not siong_ji_piau: + print(f'查不到【反切上字】:{siong_ji}') + else: + print(f"切語上字 = {siong_ji} (標音:{siong_ji_im[0]['漢字標音']})") + print(f"聲母:{siong_ji_piau[0]['聲母']} [{siong_ji_piau[0]['聲母拼音碼']}] ") + print(f"(發音部位:{siong_ji_piau[0]['發音部位']},清濁:{siong_ji_piau[0]['清濁']},發送收:{siong_ji_piau[0]['發送收']})") + + # 查詢反切下字 + print('\n-------------------------------------------------') + print('【切語下字】:\n') + ha_ji_im = han_ji_cha_piau_im(cursor, ha_ji) + ha_ji_piau = cha_ciat_gu_ha_ji(cursor, ha_ji) + if not ha_ji_piau: + print(f'查不到【反切下字】:{ha_ji}') + else: + print(f"切語下字 = {ha_ji} (標音:{ha_ji_im[0]['漢字標音']})") + print(f"韻母:{ha_ji_piau[0]['韻母']} [{ha_ji_piau[0]['韻母拼音碼']}]") + print(f"攝:{ha_ji_piau[0]['攝']},調:{ha_ji_piau[0]['調']}聲,目次:{ha_ji_piau[0]['目次']}") + print(f"{ha_ji_piau[0]['韻系']}韻系,{ha_ji_piau[0]['韻目']}韻,{ha_ji_piau[0]['呼']}口呼,{ha_ji_piau[0]['等']}等 ({ha_ji_piau[0]['等呼']})") + + # 組合拼音 + tiau_ho_list = { + '清平': 1, + '清上': 2, + '清去': 3, + '清入': 4, + '濁平': 5, + '濁上': 2, + '濁去': 7, + '濁入': 8, + } + siann = siong_ji_piau[0]['聲母拼音碼'] + cing_tok_str = siong_ji_piau[0]['清濁'] + cing_tok = cing_tok_str[-1] + un = ha_ji_piau[0]['韻母拼音碼'] + tiau_ho = tiau_ho_list[ f"{cing_tok}{ha_ji_piau[0]['調']}" ] + + print('\n-------------------------------------------------') + print(f'【切語拼音】:{ciat_gu} [{siann}{un}{tiau_ho}]\n') + # 關閉 DB + close_db_connection(conn) \ No newline at end of file diff --git a/docs/diagrams/SDD-000_DOMAIN_MODEL.md b/docs/diagrams/SDD-000_DOMAIN_MODEL.md index 34706ac..5f767eb 100644 --- a/docs/diagrams/SDD-000_DOMAIN_MODEL.md +++ b/docs/diagrams/SDD-000_DOMAIN_MODEL.md @@ -162,6 +162,8 @@ class 韻母對照表 { - 國際音標: text - 十五音: text +## 建置檢視 + ```sh CREATE VIEW 檢視測試 AS SELECT @@ -174,6 +176,8 @@ SELECT FROM 字表 ``` +## 建置小韻查詢 + ```sh CREATE VIEW 小韻查詢 AS SELECT @@ -209,14 +213,16 @@ JOIN 切語上字表 ON 小韻表.上字表識別號 = 切語上字表.識別號 JOIN 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號; ``` +## 建置漢字查廣韻標音 + ```sh -CREATE VIEW 漢字拼音碼查詢 AS +CREATE VIEW 漢字查廣韻標音 AS SELECT 字表.識別號, 字表.字, 字表.同音字序, 字表.切語, - 字表.拼音, + 字表.拼音 AS 漢字標音, 字表.字義, 小韻表.小韻字, 小韻表.目次編碼, @@ -227,11 +233,8 @@ SELECT 切語上字表.聲母, 切語上字表.清濁, 切語上字表.發送收, - 切語上字表.聲母拼音碼 AS 上字聲母拼音碼, + 切語上字表.聲母拼音碼 AS 上字標音, 切語上字表.切語上字集, - 聲母對照表.聲母拼音碼 AS 對照表聲母拼音碼, - 聲母對照表.國際音標 AS 聲母國際音標, - 聲母對照表.十五音 AS 聲母十五音, 切語下字表.韻系列號, 切語下字表.韻系行號, 切語下字表.韻目索引, @@ -245,13 +248,9 @@ SELECT 切語下字表.韻母, 切語下字表.切語下字集, 切語下字表.等呼, - 韻母對照表.韻母拼音碼 AS 韻母對照拼音碼, - 韻母對照表.國際音標 AS 韻母國際音標, - 韻母對照表.十五音 AS 韻母十五音 + 切語下字表.韻母拼音碼 AS 下字標音 FROM 字表 JOIN 小韻表 ON 字表.小韻識別號 = 小韻表.識別號 JOIN 切語上字表 ON 小韻表.上字表識別號 = 切語上字表.識別號 -JOIN 聲母對照表 ON 切語上字表.聲母識別號 = 聲母對照表.識別號 -JOIN 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號 -JOIN 韻母對照表 ON 切語下字表.韻母識別號 = 韻母對照表.識別號; +JOIN 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號; ``` diff --git a/test_han_ji_cha_siau_un.py b/test_han_ji_cha_siau_un.py index c3746dc..78cb5bf 100644 --- a/test_han_ji_cha_siau_un.py +++ b/test_han_ji_cha_siau_un.py @@ -1,10 +1,15 @@ import unittest from a400_反切查拼音 import ( + cha_ciat_gu_ha_ji, + cha_ciat_gu_siong_ji, close_db_connection, connect_to_db, + han_ji_cha_piau_im, han_ji_cha_siau_un, query_han_ji_piau_im, + query_table_by_field, + query_table_by_id, ) @@ -15,6 +20,40 @@ def setUp(self): def tearDown(self): close_db_connection(self.conn) + + def test_query_table_by_id(self): + table_name = '切語上字表' + fields = ['識別號', '發音部位', '聲母', '清濁', '發送收', '聲母拼音碼', '國際音標', '切語上字', '備註'] + id = 1 + result = query_table_by_id(self.cursor, table_name, fields, id) + self.assertIsNotNone(result) + + + def test_query_table_by_field(self): + table_name = '小韻表' + fields = [ + '識別號', '上字表識別號', '下字表識別號', '切語', '拼音', '小韻字', + '目次編碼', '小韻字序號', '小韻字集', '字數', + '聲母', '聲母拼音碼', '發音部位', '清濁', '發送收', + '韻母', '韻母拼音碼', '調', '調號', + '備註', '原有備註', '異體字', '其它備註', + ] + query_field = '小韻字集' + siau_un_ji = '中' + result = query_table_by_field(self.cursor, table_name, fields, query_field, siau_un_ji) + self.assertIsNotNone(result) + + # 檢查結果中是否包含 "中" + found = False + for row in result: + if '中' in row.get('小韻字集', ''): + found = True + break + + self.assertTrue(found, "在 '小韻字集' 欄位中未找到 '中'") + + + def test_query_han_ji_piau_im(self): han_ji = '空' results = query_han_ji_piau_im(self.cursor, han_ji) @@ -23,6 +62,7 @@ def test_query_han_ji_piau_im(self): expected = {'小韻字': '空', '切語': '苦紅', '標音': 'khong1'} self.assertIn(expected, results, "未找到預期的讀音資訊") + def test_han_ji_cha_siau_un(self): han_ji = '空' results = han_ji_cha_siau_un(self.cursor, han_ji) @@ -37,5 +77,51 @@ def test_han_ji_cha_siau_un(self): self.assertTrue(found, "未找到預期的讀音資訊") + + def test_han_ji_cha_piau_im(self): + han_ji = '空' + results = han_ji_cha_piau_im(self.cursor, han_ji) + self.assertGreater(len(results), 0, "未查詢到‘空’的讀音資訊") + + # 检查是否存在符合条件的记录 + found = False + for result in results: + if result.get('小韻字') == '空' and result.get('切語') == '苦紅' and result.get('漢字標音') == 'khong1': + found = True + break + + self.assertTrue(found, "未找到預期的讀音資訊") + + + def test_cha_ciat_gu_siong_ji(self): + siong_ji = '魚' + results = cha_ciat_gu_siong_ji(self.cursor, siong_ji) + self.assertIsNotNone(results) + + # 检查是否存在符合条件的记录 + found = False + for result in results: + if result.get('聲母') == '疑' and result.get('聲母拼音碼') == 'g': + found = True + break + + self.assertTrue(found, "未找到預期的讀音資訊") + + + def test_cha_ciat_gu_ha_ji(self): + ha_ji = '宗' + results = cha_ciat_gu_ha_ji(self.cursor, ha_ji) + self.assertIsNotNone(results) + + # 检查是否存在符合条件的记录 + found = False + for result in results: + if result.get('韻母') == '冬開1' and result.get('韻母拼音碼') == 'ong': + found = True + break + + self.assertTrue(found, "未找到預期的讀音資訊") + + if __name__ == '__main__': unittest.main() diff --git a/tmp.md b/tmp.md index 0d257ec..f58cabe 100644 --- a/tmp.md +++ b/tmp.md @@ -149,3 +149,61 @@ JOIN 聲母對照表 ON 切語上字表.聲母識別號 = 聲母對照表.識別 JOIN 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號 JOIN 韻母對照表 ON 切語下字表.韻母識別號 = 韻母對照表.識別號; ``` + + 字表 . 識別號, + 字表 . 字, + 字表 . 同音字序, + 字表 . 切語, + 字表 . 漢字標音, + 字表 . 字義, + 小韻表. 小韻字, + 小韻表. 目次編碼, + 小韻表. 小韻字序號, + 小韻表. 小韻字集, + 小韻表. 字數, + 切語上字表.發音部位, + 切語上字表.聲母, + 切語上字表.清濁, + 切語上字表.發送收, + 切語上字表.上字標音, + 切語上字表.切語上字集, + 切語下字表.韻系列號, + 切語下字表.韻系行號, + 切語下字表.韻目索引, + 切語下字表.目次, + 切語下字表.攝, + 切語下字表.韻系, + 切語下字表.韻目, + 切語下字表.調, + 切語下字表.呼, + 切語下字表.等, + 切語下字表.韻母, + 切語下字表.切語下字集, + 切語下字表.等呼, + 切語下字表.下字標音 + +SELECT 識別號, +韻母識別號, +韻系列號, +韻系行號, +韻目索引, +目次識別號, +目次, +攝, +韻系, +韻目, +調, +呼, +等, +韻母, +切語下字集, +等呼, +韻母拼音碼, +備註 +FROM 切語下字表; + +'識別號', '上字表識別號', '下字表識別號', '切語', '拼音', '小韻字', +'目次編碼', '小韻字序號', '小韻字集', '字數', +'聲母', '聲母拼音碼', '發音部位', '清濁', '發送收', +'韻母', '韻母拼音碼', '調', '調號', +'備註', '原有備註', '異體字', '其它備註',