diff --git a/README b/README new file mode 100644 index 0000000..e69de29 diff --git a/__main__.py b/__main__.py index d1eb7c8..59df166 100644 --- a/__main__.py +++ b/__main__.py @@ -12,34 +12,58 @@ def table2list(table_tsv): code_list.append(code_char_mapping) return code_list - -def list2sqlite(code_list): - - db = sqlite3.connect('table_db.sqlite') +def connect_db(db_filename): + db = sqlite3.connect(db_filename) c = db.cursor() + return db,c + +def create_new_db(db_filename): + db, c = connect_db(db_filename) + c.execute('''CREATE TABLE ime (code text, char text)''') + return db, c + + +def list2sqlite(code_list,c): - c.execute('''CREATE TABLE ime - (code text, char text)''') c.executemany( 'INSERT INTO ime VALUES (?,?)', code_list) - db.commit() - db.close() def import_all_table(): import os import re - table_folder = os.path.join('.','table') - for file in os.listdir(table_folder): + main_dirname = os.path.dirname(os.path.abspath(__file__)) + + db ,c = create_new_db(':memory:') + table_folder = os.path.join(main_dirname, 'table') + table_folder_files = os.listdir(table_folder) + + for file in table_folder_files: if re.match('.+\.txt$',file): + file_path = os.path.join(table_folder,file) list = table2list(file_path) - list2sqlite(list) + list2sqlite(list,c) + db.commit() +def find_code(char,c): + raw_code = c.execute('''SELECT code FROM ime WHERE char = ?''', (c,)) + code = [rawcode2truecode(i) for i in raw_code] + return code, c + +def rawcode2truecode(raw): + raw_code_order = "QAZWSXEDCRFVTGBYHNUJMIK
    P:?" + true_code = "" + + for i in raw: + i_index = raw_code_order.index(i) + column = str(i_index // 3) + raw_number = index % 3 + raw = ['^','-','v'][raw_number] + column_and_raw = column + raw + true_code = true_code + column_and_raw + + return true_code import_all_table() - - - - diff --git a/table/array30_Ext E_V2016A.txt b/table/array30_Ext E_V2016A.txt new file mode 100644 index 0000000..97cdd58 Binary files /dev/null and b/table/array30_Ext E_V2016A.txt differ diff --git a/table/array30_ExtCD_V2013A.txt b/table/array30_ExtCD_V2013A.txt new file mode 100644 index 0000000..65226a8 Binary files /dev/null and b/table/array30_ExtCD_V2013A.txt differ