專利名稱:在磁盤操作系統(tǒng)作業(yè)系統(tǒng)環(huán)境中辨識文字的方法
技術領域:
本發(fā)明涉及一種在磁盤操作系統(tǒng)(DOS)作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,特別涉及一種用來辨識雙位組語系文字的應用程序界面,通過直接在磁盤區(qū)查尋目錄區(qū)塊,加以辨識文件名進而讀取文件內(nèi)容區(qū)塊,達到在DOS作業(yè)環(huán)境下正確辨識文字與正確開啟文件的目的,迄今以來,DOS作業(yè)系統(tǒng)提供了一般的使用者及程序設計者一個方便且功能性高的作業(yè)環(huán)境。以開啟文件為例,如圖1所示,其為公用技術在DOS作業(yè)環(huán)境下開啟文件的流程圖,以西語言為例說明,當西語言下一“開啟文件中為“patent”的文件”的指令信息后,西語言程序庫會去進一步呼叫DOS本身所具有的相關的應用程序界面(application program interface,簡稱API)函數(shù),該相關的應用程序界面函數(shù)為fopen(filename,mode)為了開啟文件名為“patent”的文件,該應用程序界面函數(shù)為fopen(“patent”,“r”)該應用程序界面函數(shù)再根據(jù)所設定的參數(shù)值(patent)到磁盤去尋找,將磁盤區(qū)的目錄群(cluster)內(nèi)容逐一對應轉(zhuǎn)換成文件名,以找出與該文件名相符合的文件的起始群群號,即可找到該文件,再進一步開啟該文件,完成開啟文件名為“patent”的文件。
然而,DOS作業(yè)系統(tǒng)的設計是以英文為主,在其他語言體系的文字應用上存有諸多問題。以亞洲地區(qū)最常見的雙位組語系(double-byte system)文字為例,所謂的雙位組語系計有繁體中文、簡體中文、日文、韓文……等,這些雙位組語系是利用二個ASCII碼組成一個文字的字形,使得原本形狀復雜且變化多端的字體得以被數(shù)字化處理(即以二個ASCII碼為一組,用以代表一文字)。在應用上,這類的雙位組語系文字需要經(jīng)過該二個ASCII碼與文字之間的對應轉(zhuǎn)換。用來表示文字的ASCII碼有大寫的英文字字母、小寫的英文字字母與特殊符號,以繁體中文為例ASCII碼81為大寫的英文字字母“Q”;ASCII碼113為小寫的英文字字母“q”;ASCII碼185為特殊符號“ ”。由ASCII碼“ ”與ASCII碼“Q”,即可組成“鄒”這個文字;如果由ASCII碼“ ”與ASCII碼“q”,即可組成“電”這個文字。但是,DOS本身在處理文件名時卻不區(qū)分英文字字符大小寫的不同,因而使得用以表示文字的二個ASCII碼與文字間無法正確地建立對應關系,造成不正確的轉(zhuǎn)換。
以前述開啟文件的方法而言,當其應用在雙位組語系時,舉例來說,若欲開啟文件名為“電腦”的文件,當在西語言下一“開啟文件名為“電腦”的文件”的指令信息后,并進一步呼叫DOS本身所具有的相關的應用程序界面函數(shù)fopen(“電腦”,“r”)該應用程序界面函數(shù)再到磁盤去尋找,將磁盤區(qū)的目錄群內(nèi)容逐一對應轉(zhuǎn)換成文件名。然而,DOS本身無法辨識大小寫,因此,該應用程序界面在進行目錄群內(nèi)容與文件名的對應轉(zhuǎn)換時,無法建立正確的對應。上述的文件名為“電腦”的文件,其存儲在磁盤的群中為四個ASCII碼“ qu”。在以DOS的應用程序界面進行轉(zhuǎn)換時,該小寫的ASCII碼“q”被視為大寫的ASCII碼“Q”,使得原先的ASCII碼“ qu”被當成ASCII碼“ Qu”,因此轉(zhuǎn)換成ASCII碼“ Qu”所對應的文件名“鄒腦”,進而造成不正確地開啟文件名為“鄒腦”的文件(當磁盤中有文件名為“鄒腦”的文件時)或無法開啟文件(當磁盤中沒有文件名為“鄒腦”的文件時),無法正確地完成開啟文件名為“電腦”的文件。
本發(fā)明的主要目的,在于提供一種可在DOS作業(yè)系統(tǒng)下正確辨識文字的方法,特別是多種雙位組語系文字,如繁體中文、簡體中文、日文、韓文……等,以正確辨識前述語系文字與開啟由前述語系文字所編輯的文件。
為實現(xiàn)上述目的本發(fā)明提供一種在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,用以在DOS作業(yè)系統(tǒng)之下,辨識存儲在一計算機可讀寫的記錄媒體中由各語系文字編輯的某一指定文件,包括有a.搜尋該指定文件在該記錄媒體中所在的指定目錄,將該搜尋到的指定目錄設定為工作目錄;以及b.搜尋該工作目錄之中與該指定文件的文件名相同的文件,將搜尋獲得的文件設為目標文件。
根據(jù)上述的目的本發(fā)明提供的在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,是通過直接在磁盤尋找目錄區(qū)塊、辨識文件名進而讀取文件內(nèi)容區(qū)塊來完成文件的開啟與辨識,而不呼叫DOS本身所提供的相關的應用程序界面,以改善現(xiàn)階段DOS環(huán)境無法正確開啟由非英語語系文字(特別指各種雙位組語系文字)所編輯的文件的問題,達到可在DOS作業(yè)系統(tǒng)環(huán)境中正確辨識與開啟文件的目的。
有關本發(fā)明的詳細技術內(nèi)容,將結合
于后。
圖1為公用技術在DOS作業(yè)環(huán)境下開啟文件的流程圖。
圖2為本發(fā)明的主要步驟流程圖。
圖3為本發(fā)明搜尋目錄區(qū)塊的步驟流程圖。
圖4為本發(fā)明辨識文件名的步驟流程圖。
圖5為本發(fā)明讀取文件內(nèi)容區(qū)塊的步驟流程圖。
參照圖2所示,其為本發(fā)明的主要步驟流程圖,應用本發(fā)明所提供的在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,當開始執(zhí)行某一指定文件的開啟時,其流程步驟為a.首先搜尋磁盤的所有目錄區(qū)塊中是否存在符合指定文件所在的指定目錄,如果搜尋到與指定目錄相符合的目錄,則將其設為工作目錄并進行下一步文件名的辨識。如果搜尋不到與指定目錄相符合的目錄,則結束指定文件的開啟。
b.對工作目錄內(nèi)的所有文件進行文件名辨識,判斷文件的文件名是否與欲開啟的指定文件的文件名相同。如果尋找不到任一文件名與欲開啟的指定文件的文件名相同的文件,則結束指定文件的開啟;如果所尋找到的文件的文件名與欲開啟的指定文件的文件名相同,則設找到的文件為目標文件,并繼續(xù)進行下一步驟。
c.讀取該目標文件以完成指定文件的開啟。本發(fā)明搜尋目錄區(qū)塊的詳細步驟流程圖,參照圖3。欲搜尋某一指定文件所在的指定目錄時,其詳細步驟流程為a1.首先將目前目錄的初值設定為磁盤的根目錄。
a2.接著判斷指定文件所在的指定目錄的待比較目錄串是否為空,如果待比較目錄串為空表示指定目錄已搜尋到,將其設為工作目錄,進而結束指定目錄的搜尋;如果待比較目錄串不為空,則繼續(xù)指定目錄的搜尋。
a3.取出指定目錄的待比較目錄串中的第一級目錄以做為比較目錄,以與目前目錄下的所有子目錄相比較。
a4.尋找目前目錄下的所有子目錄。
a5.判斷目前目錄下是否有該比較目錄,如果沒有該比較目錄,表示指定目錄搜尋不到,結束指定目錄的搜尋;如果該目前目錄下的所有子目錄中有該比較目錄,則進行下一步驟。
a6.接著將目前目錄設定為該比較目錄。
a7.將該比較目錄從指定目錄的待比較目錄串中移除,使指定目錄的待比較目錄串減少一級,重回判斷指定文件所在的指定目錄的待比較目錄串是否為空的步驟。
以下舉例進一步說明本發(fā)明搜尋目錄區(qū)塊的步驟。參照圖3,如欲搜尋的某一指定文件所在的指定目錄為“\b\γ\Ⅳ”時,其待比較目錄串即為“\b\γ\Ⅳ”。本發(fā)明先將目前目錄的初值設定為根目錄“\”,該根目錄下有子目錄“\a”、“\b”、“\c”……。接著判斷指定目錄的待比較目錄串是否為空,目前待比較目錄串“\b\γ\Ⅳ”不為空,故繼續(xù)進行下一步驟。取出指定目錄的待比較目錄串中的第一級目錄“\b”做為比較目錄。尋找目前目錄(現(xiàn)為根目錄“\”)下的所有子目錄,尋找結果該目前目錄下有該比較目錄“\b”,因此接著將目前目錄設定為該比較目錄“\b”,并且將該比較目錄從指定目錄的待比較目錄串中移除,使指定目錄的待比較目錄串減少一級成為“\γ\Ⅳ”。
至此,新的目前目錄設定為“\b”,指定目錄的待比較目錄串則降為“\γ\Ⅳ”,重回判斷指定目錄的待比較目錄串是否為空的步驟。目前的待比較目錄串“\γ\Ⅳ”并不為空,因而接著取出待比較目錄串中的第一級目錄“\γ”做為比較目錄。尋找目前目錄(現(xiàn)為“\b”)下的所有子目錄,該目前目錄下有子目錄“\a”、“\b”、“\γ”、“\δ”……,尋找結果該目前目錄下有該比較目錄“\γ”。所以,接著將目前目錄設定為該比較目錄“\γ”,并且將該比較目錄從指定目錄的待比較目錄串中移除,使指定目錄的待比較目錄串減少一級成為“\Ⅳ”。
至此,新的目前目錄為“\γ”,指定目錄的待比較目錄串則降為“\Ⅳ”,重回判斷指定目錄的待比較目錄串是否為空的步驟。目前的待比較目錄串“\Ⅳ”并不為空,進而取出待比較目錄串中的第一級目錄“\Ⅳ”做為比較目錄。尋找目前目錄(現(xiàn)為“\γ”)下的所有子目錄,該目前目錄下有子目錄“\Ⅰ”、“\Ⅱ”、“\Ⅲ”、“\Ⅳ”……,尋找結果該目前目錄下有該比較目錄“\Ⅳ”。所以,接著將目前目錄設定為該比較目錄“\Ⅳ”,并且將該比較目錄從指定目錄的待比較目錄串中移除,使指定目錄的待比較目錄串減少一級成為“ ”至此,新的目前目錄為“\Ⅳ”,指定目錄的待比較目錄串則降為“”,重回判斷指定目錄的待比較目錄串是否為空的步驟。目前的待比較目錄串“”為空字串,表示指定目錄已搜尋到,將指定目錄為“\b\γ\Ⅳ”設為工作目錄,結束并完成指定目錄的搜尋。
參照圖4,其為本發(fā)明辨識指定文件的文件名的步驟流程圖。欲辨識工作目錄內(nèi)的文件的文件名,本發(fā)明在該工作目錄中取每一文件,將所取得的文件的文件名與欲開啟的指定文件的文件名相比較,直至尋找到欲開啟的指定文件為止。其步驟流程為b1.先取工作目錄內(nèi)的一目錄群(設定初值為工作目錄的第一目錄群),以辨識該目錄群內(nèi)的所有文件。
b2.接著取該目錄群內(nèi)的一文件。
b3.判斷是否取得文件,若有取得文件則繼續(xù)進行下一步驟,若沒有取得文件則跳至取工作目錄內(nèi)的下一目錄群的步驟(b7)。
b4.分解文件的文件名部分(一般為8位組的文件名以及3個位組的子文件名),以取得該文件的文件名,由于不通過DOS本身所提供的應用程序界面,因此文件名中若含有小寫則不會被過濾成大寫。
b5.接著比較文件的文件名是否與所欲開啟的指定文件的文件名相符,由本發(fā)明所提供的方法,文件名的11個位組(8個位組的文件名加上3個位組的子文件名)中,任一位組若大小寫不同,即被視為不同的文件名,因此可以正確地辨識所尋找到的文件的文件名與所欲開啟的指定文件的文件名是否相同。如果不相同,則重回取目錄群內(nèi)的文件的步驟;如果所尋找到的文件的文件名與所欲開啟的指定文件的文件名相同,則設尋找到的文件為目標文件,并進行下一步驟。
b6.取得該目標文件的起始群,找到所需的指定文件并結束文件名的辨識。
b7.取工作目錄內(nèi)的下一目錄群。
b8.判斷該目錄群是否已結束,如果已結束,則找不到所需的指定文件并結束文件名的辨識;如果未結束,則重回步驟b2。
本發(fā)明讀取目標文件(即是欲開啟的指定文件)內(nèi)容區(qū)塊的步驟流程圖如圖5所示。本發(fā)明讀取目標文件是從目標文件的起始群開始,依次讀取文件群,直至讀完該目標文件的所有文件群。其步驟流程為c1.先取一文件群。
c2.判斷文件是否結束,若為是則結束目標文件的讀取;若為否則進行下一步驟。
c3.讀該文件群的內(nèi)容。重回取文件群的步驟,以取下一文件群,并判斷文件是否結束,若為是則結束目標文件的讀取;若為否則讀該文件群的內(nèi)容。重復文件群的讀取,直至讀完該文件的所有文件群(即判斷結果為文件結束),結束并完成目標文件的讀取。
本發(fā)明提供一種DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,由于不通過DOS本身所提供的應用程序界面,因此欲尋找或是欲開啟的指定文件的文件名中若含有小寫不會被過濾成大寫,文件名的11個位組(8個位組的文件名加上3個位組的子文件名)中,任一位組若大小寫不同,即被視為不同的文件名,因此可以正確地辨識指定文件的文件名,進而開啟指定文件。
權利要求
1.一種在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,用以在DOS作業(yè)系統(tǒng)之下,辨識存儲在一計算機可讀寫的記錄媒體中由各語系文字編輯的某一指定文件,包括有a.搜尋該指定文件在該記錄媒體中所在的指定目錄,將該搜尋到的指定目錄設定為工作目錄;以及b.搜尋該工作目錄之中與該指定文件的文件名相同的文件,將搜尋獲得的文件設為目標文件。
2.如權利要求1所述的在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,其中還包括有一在該記錄媒體中搜尋不到該指定文件所在的指定目錄時,結束該文件辨識的步驟。
3.如權利要求1所述的在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,其中還包括有一在該工作目錄之中搜尋不到與該指定文件的文件名相同的文件時,結束該文件辨識的步驟。
4.如權利要求1所述的在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,其中該步驟a包括有1.開始搜尋目錄;2.設定目前目錄為根目錄;3.判斷該指定目錄的待比較目錄串是否為空,若為否,則進行下一步驟,若為是則跳到步驟10;4.取出該指定目錄的待比較目錄串中的第一級目錄以做為比較目錄;5.尋找該目前目錄下的所有子目錄,當該目前目錄下有該比較目錄則進行下一步驟,當該目前目錄下沒有該比較目錄則跳到步驟9;6.設定目前目錄為該比較目錄;7.移除該指定目錄的待比較目錄串中的該比較目錄,使該指定目錄的待比較目錄串減少一級;8.跳至步驟3;9.結束目錄的搜尋;以及10.將搜尋到的指定文件所在的指定目錄設定為工作目錄,結束指定目錄的搜尋。
5.如權利要求1所述在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,其中該步驟b包括有1.取該工作目錄內(nèi)的一目錄群,以辨識該目錄群內(nèi)的所有文件;2.取目錄群內(nèi)的一文件,當取得文件則進行下一步驟,當沒有取得文件則跳到步驟6;3.分解該文件的文件名部分,以取得該文件的文件名;4.比較該文件的文件名與所欲開啟的指定文件的文件名,當該文件的文件名與所欲開啟的指定文件的文件名相同則進行下一步驟,當該文件的文件名與所欲開啟的指定文件的文件名不相同則回到步驟2;5.取得該文件的起始群號,并設該文件為目標文件;6.取指定目錄內(nèi)的下一目錄群,當該目錄群已結束則找不到所需的指定文件并結束文件的辨識,當該目錄群未結束,則重回步驟2。
6.一種在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,用以在DOS作業(yè)系統(tǒng)之下,開啟存儲在一計算機可讀寫的記錄媒體中由各語系文字編輯的某一指定文件,包括有a.開始執(zhí)行指定文件的開啟;b.搜尋該指定文件在該記錄媒體中所在的指定目錄,將該搜尋到的指定目錄設定為工作目錄;c.搜尋該工作目錄之中與該指定文件的文件名相同的文件,將搜尋獲得的文件設為目標文件;d.讀取該目標文件;以及e.完成并結束該指定文件的開啟。
7.如權利要求6所述在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,其中還包括有一在該記錄媒體中搜尋不到該指定文件所在的指定目錄時,結束該文件辨識的步驟。
8.如權利要求6所述在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,其中還包括有一在該工作目錄之中搜尋不到與該指定文件的文件名相同的文件時,結束該文件辨識的步驟。
9.如權利要求6所述在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,其中該步驟b包括有1.開始搜尋目錄;2.設定目前目錄為根目錄;3.判斷該指定目錄的待比較目錄串是否為空,若為否則進行下一步驟,若為是則跳到步驟10;4.取出該指定目錄的待比較目錄串中的第一級目錄以做為比較目錄;5.尋找該目前目錄下的所有子目錄,當該目前目錄下有該比較目錄則進行下一步驟,當該目前目錄下沒有該比較目錄則跳到步驟9;6.設定目前目錄為該比較目錄;7.移除該指定目錄的待比較目錄串中的該比較目錄,使該指定目錄的待比較目錄串減少一級;8.跳至步驟3;9.結束目錄的搜尋;10.將搜尋到的指定文件所在的指定目錄設定為工作目錄,結束指定目錄的搜尋。
10.如權利要求6所述在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,其中該步驟c包括有1.取該工作目錄內(nèi)的一目錄群,以辨識該目錄群內(nèi)的所有文件;2.取目錄群內(nèi)的一文件,當取得文件則進行下一步驟,當沒有取得文件則跳到步驟6;3.分解該文件的文件名部分,以取得該文件的文件名;4.比較該文件的文件名與所欲開啟的指定文件的文件名,當該文件的文件名與所欲開啟的指定文件的文件名相同則進行下一步驟,當該文件的文件名與所欲開啟的指定文件的文件名不相同則回到步驟2;5.取得該文件的起始群號,并設該文件為目標文件;6.取指定目錄內(nèi)的下一目錄群,當該目錄群已結束則找不到所需的指定文件并結束文件的辨識,當該目錄群未結束,則重回步驟2。
11.如權利要求6所述在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,其中該步驟d包括有1.取得目標文件的文件群,當該文件群的文件已經(jīng)結束則跳到步驟3,當該文件群的文件未結束則進行下一步驟;2.讀該文件群的內(nèi)容,并重回步驟1;3.結束目標文件的讀取。
12.一種可供計算機讀寫用以命令計算機在DOS作業(yè)系統(tǒng)環(huán)境中,開啟由各語系文字編輯的某一指定文件的記錄媒體,其中存儲有一目錄群庫,包含有所有目錄的目錄群資料;以及對應各該目錄群的文件群資料,包括文件群號與文件名;一目錄搜尋指令集,用以在該目錄群庫中搜尋該指定文件的目錄群;一文件查取指令集,用以逐一取出該目錄群內(nèi)的文件群;一文件名對應表,用以比較辨識該指定文件的文件名與所取出的文件群的文件名;以及一文件讀取指令集,用以取得該指定文件的內(nèi)容。
全文摘要
本發(fā)明是關于一種在DOS作業(yè)系統(tǒng)環(huán)境中辨識文字的方法,特別是一種用來辨識位組語系文字,如:繁體中文、簡體中文、日文、韓文……等,通過直接在磁盤區(qū)查尋目錄區(qū)塊,加以辨識文件名區(qū)塊進而讀取文件內(nèi)容區(qū)塊的方法,達到在DOS作業(yè)環(huán)境下可正確辨識前述語系文字并開啟由前述語系文字所編輯的文件。
文檔編號G06F17/30GK1310417SQ0010229
公開日2001年8月29日 申請日期2000年2月22日 優(yōu)先權日2000年2月22日
發(fā)明者陳玄同, 林光信, 劉軍, 董敏 申請人:英業(yè)達股份有限公司