2016-09-09 43 views
-1

我打算創建一個android字典應用程序,其目標是將我的母語(Zazaki)翻譯成土耳其語。
我有2個文件,其中有象下面這樣的格式:Android字典應用程序

扎扎其語土耳其Word文檔 禁令:EV ====>家

土耳其語扎扎其語 EV:禁令,CE === > home

在我看來,首先把冒號之前的單詞當作關鍵詞,冒號之後作爲價值。
然後將其放入數據庫中。

我的問題是:
「嗎?我必須爲每一次做這個操作
我怎樣才能讓這個數據庫可爲各種下載通過不導入單詞列表文件到我的數據庫」?

+0

爲什麼不預先填充數據庫並將其發送到您的應用程序?您只需要2個表格,其中包含單詞和其唯一標識(每種語言一個表格)以及連接表格之間標識的連接器表格。所以你會做出雙向多對多的關係。 –

+0

我檢查你有關預填充數據庫的答案。在這種情況下我應該使用2個DB嗎? – erdemhayir

+0

NO。一個db可以包含任意數量的表。 –

回答

1

首先,如果你有excel,通過分割''並刪除不需要的結果列,很容易將單詞文檔寫入數據庫。然後您可以將其導出,例如到.csv文件中。

對於你的要求,我會用下面的僞代碼,作爲我的代碼指南:

int currIndex = 0; 
string key, value; 
while(!EndOfFile){ 
    currIndex = find('='); 
    key = getWordBeforeCurrentIndex(); 
    currIndex = find('>'); 
    value = getWordAfterCurrentIndex(); 
    myDictionary.Add(key, value); 
} 

作出這樣到真正的代碼,瞧 - 你有你自己的應用程序分析文檔到字典中。

如果你知道你的文件有像一個確切的格式:

EV ====>家

單詞2 ===> translation2

WORD3 ===> translation3

當然,你可以利用這一點,並去

Dictionary myDict = new HashTable<string, string>(); 
InputStream wordDictionary = getResources().openRawResource(R.raw.wordDictionary); 
DataInputStream myDIS = new DataInputStream(wordDictionary); 

ArrayList<string> lines = new ArrayList<Lines>(); 
string currLine; 
//Read document into arraylist: 
while((myLine=myDIS.readline())!=null) list.add(myLine); 
//Take each line, add left word as key, add right word as value: 
foreach(line : lines){ 
    myDict.add(line.substring(0, line.indexOf(" ")), line.substring(line.indexOf(" ", line.indexOf(" ")+1)); 
} 
+0

我應該添加Word文檔到資源? – erdemhayir

+0

或者,或者把它放在文件系統中並在那裏找到它。應該谷歌「android從系統讀取文件」,因爲我現在無法想到該功能^^ – Squirrelkiller

+0

非常感謝。我會嘗試。最好的祝福 – erdemhayir