專利名稱:數(shù)據(jù)定位及數(shù)據(jù)轉(zhuǎn)換方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)數(shù)據(jù)處理,尤其涉及對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行數(shù)據(jù)定位及數(shù)據(jù)轉(zhuǎn)換的方法及設(shè)備。
背景技術(shù):
隨著信息技術(shù)的發(fā)展,越來越多的企業(yè)開始使用各種應(yīng)用系統(tǒng)來管理自己的各種數(shù)據(jù)信息,從而形成了具有各種格式的數(shù)據(jù)文件。而且隨著企業(yè)交往的日益密切,企業(yè)內(nèi)部及不同的企業(yè)之間進(jìn)行數(shù)據(jù)交換也日益頻繁。因而將具有不同的數(shù)據(jù)格式的數(shù)據(jù)進(jìn)行成功交換成為集成各種網(wǎng)絡(luò)應(yīng)用系統(tǒng)所必須解決的問題。
在現(xiàn)有技術(shù)中,為了在不同的應(yīng)用系統(tǒng)之間實現(xiàn)數(shù)據(jù)交換,采用了為某個具體的應(yīng)用系統(tǒng)專門定制開發(fā)出用于將其源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換工具。但是在這種數(shù)據(jù)轉(zhuǎn)換技術(shù)中,如果該應(yīng)用系統(tǒng)的數(shù)據(jù)格式發(fā)生了變化,則需要對其數(shù)據(jù)轉(zhuǎn)換工具重新進(jìn)行代碼的修改和調(diào)試。這種數(shù)據(jù)轉(zhuǎn)換技術(shù)是一個浪費時間和人力,并且效率低下的解決方案。
進(jìn)而,為了實現(xiàn)數(shù)據(jù)交換功能,首先要對具有不同格式的源數(shù)據(jù)進(jìn)行理解、分析和處理?,F(xiàn)有的大多數(shù)的應(yīng)用系統(tǒng)都利用生成和處理具有相對固定的格式和結(jié)構(gòu)的數(shù)據(jù)文件的方法。因而基于對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位,截取并進(jìn)而進(jìn)行數(shù)據(jù)轉(zhuǎn)換的數(shù)據(jù)轉(zhuǎn)換方法和工具也應(yīng)運而生。在此,所謂數(shù)據(jù)文件尤其指各種由可打印字符組成的文件,包括用于機(jī)器理解的文本格式,例如數(shù)據(jù)庫的查詢結(jié)果列表,EDI消息,表格處理系統(tǒng)中掃描圖像進(jìn)行文字識別后的結(jié)果ERP系統(tǒng)或其它應(yīng)用系統(tǒng)生成的供閱讀、傳輸或打印的通用報告等等。
在這些對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位和轉(zhuǎn)換的現(xiàn)有技術(shù)中,包括,例如Unidex公司的XML Converter,它用于對具有簡單分隔結(jié)構(gòu)的數(shù)據(jù)文件進(jìn)行數(shù)據(jù)轉(zhuǎn)換,例如要求所處理的數(shù)據(jù)文件必須包含數(shù)據(jù)記錄,每個記錄由一系列數(shù)據(jù)域組成,數(shù)據(jù)記錄和數(shù)據(jù)域要由分隔符分隔,沒有分隔符標(biāo)識的數(shù)據(jù)域必須具有固定的長度等等限制。
另外,還有利用數(shù)據(jù)文件的結(jié)構(gòu)、語法、語義分析數(shù)據(jù),進(jìn)行數(shù)據(jù)轉(zhuǎn)換的方法,例如美國專利USP4,965,763。該專利技術(shù)用于從大量的商業(yè)往來信件中抽取信息。
進(jìn)而,還有通過使用關(guān)鍵字進(jìn)行數(shù)據(jù)定位和截取的技術(shù),例如美國專利USP5,664,109。該專利技術(shù)用于按照關(guān)鍵字從一個醫(yī)療記錄倉庫中自動檢索文檔。
在歐洲專利文獻(xiàn)EP1016982中還公開了一種對結(jié)構(gòu)化較好的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)提取和輸出的方法。
但是,上述涉及數(shù)據(jù)轉(zhuǎn)換的現(xiàn)有技術(shù)都是針對特定的應(yīng)用場景,只提供關(guān)鍵字匹配或語義處理方法,因而只適合處理具有簡單格式的文本。
因此需要一種能夠針對各種數(shù)據(jù)文件進(jìn)行簡便高效的數(shù)據(jù)轉(zhuǎn)換的通用數(shù)據(jù)轉(zhuǎn)換方法和工具,以解決上述問題。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)的上述問題,本發(fā)明的一個目的是提供一種基于文本標(biāo)識匹配和二維空間坐標(biāo)位置定位的數(shù)據(jù)定位設(shè)備和方法。
本發(fā)明的另一個目的是提供一種基于文本標(biāo)識匹配和二維空間坐標(biāo)位置定位的數(shù)據(jù)轉(zhuǎn)換設(shè)備和方法。
本發(fā)明提供一種對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的方法,包括步驟確定數(shù)據(jù)文件中要進(jìn)行定位的數(shù)據(jù)單元;為數(shù)據(jù)單元確定一個類型,類型包括“文字”、“單行”、“多行”、“塊”和“循環(huán)列表”;當(dāng)數(shù)據(jù)單元的類型不是“文字”的時候,
為數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其定位參照物;根據(jù)數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的定位描述,該描述包括數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,定位元件包括“頂”、“底”、“左”、和“右”,每個定位元件包括一個屬性組合,以確定定位元件的位置,屬性包括“定位基準(zhǔn)單元”,它是另一個不同的數(shù)據(jù)單元,“起點”,它是“定位基準(zhǔn)單元”中的一個位置,用作定位元件的定位基準(zhǔn)位置;“跳過”,用于表示定位元件相對于“起點”的偏移量。
根據(jù)本發(fā)明的對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的方法,“定位基準(zhǔn)單元”是一個“文字”類型的數(shù)據(jù)單元或者是已經(jīng)確定了各定位元件的屬性的任意一個數(shù)據(jù)單元。
根據(jù)本發(fā)明的對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的方法,屬性還包括“直到”,用于表示定位元件的偏移在一個標(biāo)識處結(jié)束;“之前”,用于表示定位元件的偏移在一個標(biāo)識之前結(jié)束;“之后”,用于表示定位元件的偏移在一個標(biāo)識之后結(jié)束。
根據(jù)本發(fā)明的對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的方法,其特征在于,“起點”為“定位基準(zhǔn)單元”的起始位置或終止位置。
本發(fā)明還提供一種對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的設(shè)備,包括數(shù)據(jù)單元確定裝置,類型確定裝置,定位參照物確定裝置和數(shù)據(jù)單元定位描述生成裝置,數(shù)據(jù)單元確定裝置確定數(shù)據(jù)文件中要進(jìn)行定位的數(shù)據(jù)單元,類型確定裝置為數(shù)據(jù)單元確定一個類型,類型包括“文字”、“單行”、“多行”、“塊”和“循環(huán)列表”,當(dāng)數(shù)據(jù)單元的類型不是“文字”的時候,定位參照物確定裝置為數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其定位參照物;數(shù)據(jù)單元定位描述生成裝置根據(jù)數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的位置的描述,該描述包括數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,定位元件包括“頂”、“底”、“左”、和“右”,每個定位元件包括一個屬性組合,以確定定位元件的位置,屬性包括“定位基準(zhǔn)單元”,它是另一個不同的數(shù)據(jù)單元,“起點”,它是“定位基準(zhǔn)單元”中的一個位置,用作定位元件的定位基準(zhǔn)位置,“跳過”,用于表示定位元件相對于“起點”的偏移量。
本發(fā)明還提供一種數(shù)據(jù)轉(zhuǎn)換方法,用于將第一格式的第一數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為第二格式的第二數(shù)據(jù)文件中的數(shù)據(jù),該數(shù)據(jù)轉(zhuǎn)換方法包括數(shù)據(jù)搜索步驟,對第一數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行搜索,確定數(shù)據(jù)位置;數(shù)據(jù)截取步驟,截取已經(jīng)被確定位置的數(shù)據(jù);以及數(shù)據(jù)轉(zhuǎn)換步驟,將截取的數(shù)據(jù)轉(zhuǎn)換為第二數(shù)據(jù)文件中的數(shù)據(jù),其特征在于在數(shù)據(jù)搜索步驟之前,生成第一數(shù)據(jù)文件中要進(jìn)行定位的一個或多個數(shù)據(jù)單元的定位描述,以及在數(shù)據(jù)單元與第二數(shù)據(jù)文件的第二格式之間建立起對應(yīng)關(guān)系,并且對于每個數(shù)據(jù)單元執(zhí)行如下步驟為數(shù)據(jù)單元定義一個類型,類型包括“文字”、“單行”、“多行”、“塊”和“循環(huán)列表”;當(dāng)數(shù)據(jù)單元的類型不是“文字”的時候,為數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其定位參照物;根據(jù)數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的位置的描述,該描述包括數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,定位元件包括“頂”、“底”、“左”、和“右”,每個定位元件包括一個屬性組合,以確定定位元件的位置,屬性包括“定位基準(zhǔn)單元”,它是另一個不同的數(shù)據(jù)單元,“起點”,它是“定位基準(zhǔn)單元”中的一個位置,用作定位元件的定位基準(zhǔn)位置;“跳過”,用于表示定位元件相對于“起點”的偏移量,數(shù)據(jù)搜索步驟,根據(jù)一個或多個數(shù)據(jù)單元定位描述進(jìn)行數(shù)據(jù)單元定位;數(shù)據(jù)截取步驟,將被定位的一個或多個數(shù)據(jù)單元截取出來,數(shù)據(jù)轉(zhuǎn)換步驟,根據(jù)在一個或多個數(shù)據(jù)單元與第二格式之間建立起的對應(yīng)關(guān)系,對第一數(shù)據(jù)文件,將被數(shù)據(jù)截取步驟截取的數(shù)據(jù)單元轉(zhuǎn)換為具有第二格式的數(shù)據(jù),從而生成相應(yīng)的一個或多個第二數(shù)據(jù)文件中的數(shù)據(jù)。
本發(fā)明還提供一種數(shù)據(jù)轉(zhuǎn)換設(shè)備,用于將第一格式的第一數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為第二格式的第二數(shù)據(jù)文件中的數(shù)據(jù),該數(shù)據(jù)轉(zhuǎn)換設(shè)備包括數(shù)據(jù)搜索裝置,對第一數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行搜索,確定其位置;數(shù)據(jù)截取裝置,截取已經(jīng)被確定位置的數(shù)據(jù);以及數(shù)據(jù)轉(zhuǎn)換裝置,將截取的數(shù)據(jù)轉(zhuǎn)換為第二數(shù)據(jù)文件中的數(shù)據(jù),其特征在于該數(shù)據(jù)轉(zhuǎn)換設(shè)備還包括數(shù)據(jù)單元確定裝置,類型確定裝置,定位參照物確定裝置,數(shù)據(jù)單元定位描述生成裝置和格式映射裝置,數(shù)據(jù)單元確定裝置確定數(shù)據(jù)文件中要進(jìn)行定位的一個或多個數(shù)據(jù)單元,并且對于每個數(shù)據(jù)單元執(zhí)行如下步驟類型確定裝置為數(shù)據(jù)單元確定一個類型,類型包括“文字”、“單行”、“多行”、“塊”和“循環(huán)列表”,當(dāng)數(shù)據(jù)單元的類型不是“文字”的時候,定位參照物確定裝置為數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其定位參照物;數(shù)據(jù)單元定位描述生成裝置根據(jù)數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的位置的描述,該描述包括數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,定位元件包括“頂”、“底”、“左”、和“右”,每個定位元件包括一個屬性組合,以確定定位元件的位置,屬性包括“定位基準(zhǔn)單元”,它是另一個不同的數(shù)據(jù)單元,“起點”,它是“定位基準(zhǔn)單元”中的一個位置,用作定位元件的定位基準(zhǔn)位置,“跳過”,用于表示定位元件相對于“起點”的偏移量,格式映射裝置,在一個或多個數(shù)據(jù)單元與第二數(shù)據(jù)文件的第二格式之間建立起對應(yīng)關(guān)系,數(shù)據(jù)搜索裝置,根據(jù)數(shù)據(jù)單元定位描述進(jìn)行數(shù)據(jù)單元搜索,確定其位置;數(shù)據(jù)截取裝置,將被確定位置的一個或多個數(shù)據(jù)單元截取出來,數(shù)據(jù)轉(zhuǎn)換裝置,根據(jù)格式映射裝置在一個或多個數(shù)據(jù)單元與第二格式之間建立起的對應(yīng)關(guān)系,對第一數(shù)據(jù)文件,將被數(shù)據(jù)截取裝置截取的數(shù)據(jù)單元轉(zhuǎn)換為具有第二格式的數(shù)據(jù),從而生成相應(yīng)的一個或多個第二數(shù)據(jù)文件中的數(shù)據(jù)。
本發(fā)明的一個優(yōu)點在于能夠?qū)Ω鞣N結(jié)構(gòu)的數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換。
本發(fā)明的另一個優(yōu)點在于,根據(jù)本發(fā)明,用戶可以根據(jù)自己的需要對原始數(shù)據(jù)靈活地進(jìn)行抽取規(guī)則設(shè)計及輸出設(shè)計。
本發(fā)明的又一個優(yōu)點在于,本發(fā)明不僅能夠根據(jù)數(shù)據(jù)的起點和終點來定位數(shù)據(jù)位置,還提供了根據(jù)數(shù)據(jù)二維空間區(qū)域進(jìn)行數(shù)據(jù)位置定位的方法,從而進(jìn)一步增加了數(shù)據(jù)定位的靈活性。
本發(fā)明的又一個優(yōu)點在于通過將數(shù)據(jù)定位和數(shù)據(jù)轉(zhuǎn)換進(jìn)行分離設(shè)計,從而提高了轉(zhuǎn)換規(guī)則更改的靈活性和擴(kuò)展性。
本發(fā)明尤其適用于具有確定格式并需要進(jìn)行批量處理的數(shù)據(jù)轉(zhuǎn)換工作。
通過以下結(jié)合附圖對本發(fā)明的最佳實施例的詳細(xì)說明,本發(fā)明的這些以及其他優(yōu)點將更加明顯。
圖1示出根據(jù)本發(fā)明的數(shù)據(jù)定位設(shè)備的方框圖。
圖2示出根據(jù)本發(fā)明的數(shù)據(jù)定位方法對數(shù)據(jù)進(jìn)行定位的示意圖。
圖3示出根據(jù)本發(fā)明的數(shù)據(jù)定位方法的流程圖。
圖4示出使用根據(jù)本發(fā)明的數(shù)據(jù)定位設(shè)備和方法進(jìn)行數(shù)據(jù)定位的顯示畫面。
圖5示出根據(jù)本發(fā)明的數(shù)據(jù)轉(zhuǎn)換設(shè)備的功能方框圖。
圖6示出根據(jù)本發(fā)明的數(shù)據(jù)轉(zhuǎn)換方法將源數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù)的流程圖。
圖7示出對多個源數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換的流程圖。
具體實施例方式
現(xiàn)在將結(jié)合圖1描述根據(jù)本發(fā)明的數(shù)據(jù)定位設(shè)備。圖1示出根據(jù)本發(fā)明的數(shù)據(jù)定位設(shè)備的方框圖。
根據(jù)本發(fā)明的數(shù)據(jù)定位設(shè)備包括數(shù)據(jù)單元確定裝置101,類型確定裝置102,定位參照物確定裝置103和數(shù)據(jù)單元定位描述生成裝置104。
根據(jù)本發(fā)明的數(shù)據(jù)定位設(shè)備,對于源數(shù)據(jù)文件中的數(shù)據(jù),生成用于對其進(jìn)行數(shù)據(jù)定位和截取的一個或多個數(shù)據(jù)單元定位描述。
數(shù)據(jù)單元確定裝置101確定一個源數(shù)據(jù)文件中要進(jìn)行定位的一個或多個數(shù)據(jù)單元,其中數(shù)據(jù)單元是本發(fā)明中進(jìn)行數(shù)據(jù)定位基本單位。關(guān)于數(shù)據(jù)單元的確定將在后面詳細(xì)描述。另外,為了方便,此處在描述數(shù)據(jù)定位設(shè)備的時候,是對一個源數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位。但是本發(fā)明的數(shù)據(jù)定位設(shè)備同樣適用于對多個源數(shù)據(jù)文件進(jìn)行數(shù)據(jù)定位,這將在后面詳細(xì)描述。
對于每個數(shù)據(jù)單元類型確定裝置102為該數(shù)據(jù)單元定義一個類型;定位參照物確定裝置103為該數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其參照物;數(shù)據(jù)單元定位描述生成裝置104根據(jù)該數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的位置的描述。
下面將結(jié)合圖2至圖4詳細(xì)描述根據(jù)本發(fā)明的數(shù)據(jù)定位方法對一個數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行數(shù)據(jù)定位的處理過程。
根據(jù)本發(fā)明,文本文件上的數(shù)據(jù)由預(yù)先定義的不同類型的數(shù)據(jù)單位以“數(shù)據(jù)單元”的形式標(biāo)識。“數(shù)據(jù)單元”由定位元件定位,并且可以包括“子數(shù)據(jù)單元”。
如圖2所示,“數(shù)據(jù)單元”主要由5種類型的數(shù)據(jù)單元組成,即“文字(Text)”,“單行(SingleLine)”,“多行(MultiLine)”,“塊(Block)”和“循環(huán)列表(Iterator)”。但是本發(fā)明對數(shù)據(jù)單元的定義不限于上述5種類型的數(shù)據(jù)單元,可以根據(jù)需要靈活地擴(kuò)展其它的用于進(jìn)行數(shù)據(jù)定位的數(shù)據(jù)單元。
具體而言,“文字”用于表示可以被查找匹配的字符串,例如圖2中的數(shù)據(jù)單元A被定義為“文字”數(shù)據(jù)單元。
“單行”用于表示被定義的數(shù)據(jù)單元在源數(shù)據(jù)文件中的排列方式表現(xiàn)為一行,例如圖2中的數(shù)據(jù)單元B被定義為“單行”數(shù)據(jù)單元。
“多行”用于表示被定義的數(shù)據(jù)單元在源數(shù)據(jù)文件中的排列方式表現(xiàn)為由多個單行構(gòu)成的多個行,“多行”數(shù)據(jù)單元中的多個單行的位置關(guān)系可能包括起始列的位置不完全相同的多個單行,結(jié)束列的位置不完全相同的多個單行,也可能包括起始列和結(jié)束列完全相同或不完全相同的多個單行,例如圖2中的數(shù)據(jù)單元C被定義為“多行”數(shù)據(jù)單元。
“塊”用于表示被定義的數(shù)據(jù)單元在源數(shù)據(jù)文件中的排列方式表現(xiàn)為在列的方向上緊密排列且列的起始位置和結(jié)束位置相同的多個單行構(gòu)成的一個塊,例如圖2中的數(shù)據(jù)單元D被定義為“塊”數(shù)據(jù)單元。因此當(dāng)“多行”中多個單行的起始列和結(jié)束列的位置完全相同時,此多個單行既可以用“多行”進(jìn)行定義,也可以用“塊”進(jìn)行定義。這些都可以由開發(fā)者根據(jù)自己的需要和喜好進(jìn)行靈活設(shè)置。
“循環(huán)列表”用于表示被定義的數(shù)據(jù)單元在源數(shù)據(jù)文件中的排列方式表現(xiàn)為包括多個格式特征相同的子數(shù)據(jù)單元,這些子數(shù)據(jù)單元循環(huán)出現(xiàn)。例如圖2中的數(shù)據(jù)單元E被定義為“循環(huán)列表”數(shù)據(jù)單元,在該數(shù)據(jù)單元中,包括循環(huán)出現(xiàn)的同種類型的子數(shù)據(jù)單元F,該子數(shù)據(jù)單元F包括兩個“單行”子數(shù)據(jù)單元J和K。“循環(huán)列表”通常用來定義列表數(shù)據(jù)。
本領(lǐng)域的技術(shù)人員將能夠理解,上述對數(shù)據(jù)單元的類型的定義不是唯一的,可以根據(jù)需要定義任意類型的數(shù)據(jù)單元。例如可以把“塊”類型合并到“多行”數(shù)據(jù)單元中。例如,在決定由多個單行構(gòu)成的數(shù)據(jù)單元是劃分到“塊”,“多行”還是“循環(huán)列表”中時,可以考慮這個數(shù)據(jù)單元的內(nèi)容和/或目標(biāo)數(shù)據(jù)文件的格式,從而確定把該數(shù)據(jù)單元定義為何種類型的數(shù)據(jù)單元。只要能夠?qū)υ磾?shù)據(jù)文件進(jìn)行有效定位和抽取即可。這體現(xiàn)了本發(fā)明的一個優(yōu)點,即定位的靈活性和擴(kuò)展性。
另外,在按照上述數(shù)據(jù)單元對源數(shù)據(jù)文件進(jìn)行定位時,可以進(jìn)行數(shù)據(jù)單元的嵌套定位和抽取。例如在定位“多行”數(shù)據(jù)單元構(gòu)成的數(shù)據(jù)單元C后,可以接著對該“多行”數(shù)據(jù)單元中的“單行”子數(shù)據(jù)單元G,H,I進(jìn)行定位和抽取。至于嵌套定位到何種程度,只要能夠?qū)⒃磾?shù)據(jù)文件中的數(shù)據(jù)內(nèi)容轉(zhuǎn)換到目標(biāo)文件的相應(yīng)區(qū)域中即可。因此,開發(fā)者可以根據(jù)需要靈活地在源數(shù)據(jù)文件中設(shè)置數(shù)據(jù)單元。
在設(shè)定了數(shù)據(jù)單元之后,還需要設(shè)定對數(shù)據(jù)單元進(jìn)行定位的定位元件,這樣才能夠?qū)?shù)據(jù)單元進(jìn)行正確的定位和截取。除了“文字”數(shù)據(jù)單元可以直接通過字符串匹配進(jìn)行定義之外,其它四種數(shù)據(jù)單元均需要用定位元件進(jìn)行位置確定。
根據(jù)本發(fā)明,使用如下的四種定位元件確定一個數(shù)據(jù)單元的位置。即“頂(Top)”,表示數(shù)據(jù)單元的最上方位置;“底(Bottom)”,表示數(shù)據(jù)單元的最下方位置;“左(Left)”,表示數(shù)據(jù)單元的最左方位置;“右(Right)”,表示數(shù)據(jù)單元的最右方位置。
其中每個定位元件又由多個基本屬性來定義。包括“定位基準(zhǔn)單元(Base)”,它是一個數(shù)據(jù)單元,用作該定位元件的定位參照物;“起點(From)”,它是“定位基準(zhǔn)單元”中的一個位置,用作該定位元件的定位基準(zhǔn)位置;“跳過(Skip)”,用于表示該定位元件相對于所述“起點”的偏移量。
除了以上的基本屬性之外,還可以使用如下的屬性定義定位元件,例如“直到(Until)”,用于表示定位元件的終止位置;“之前(Before)”,用于表示定位元件的偏移在一個標(biāo)識之前結(jié)束;“之后(After)”,用于表示定位元件的偏移在一個標(biāo)識之后結(jié)束。
具體而言,屬性“定位基準(zhǔn)單元”的值可以是一個已定位了的“數(shù)據(jù)單元”的ID,例如一個“文字”類型的數(shù)據(jù)單元的ID,或者是“行的開始”(RB),“行的結(jié)束”(RE),“列的開始”(CB),“列的結(jié)束”(CE)。其中“行的開始”(RB),“行的結(jié)束”(RE),“列的開始”(CB),“列的結(jié)束”(CE)都是針對當(dāng)前的定位基準(zhǔn)單元所在的行或列而言。當(dāng)然,該“定位基準(zhǔn)單元”也可以是一個絕對坐標(biāo)中的原點。
“起點”可以是定位元件相對于“定位基準(zhǔn)單元”的相對起始位置(START)或終止位置(END)。
“直到”可以指定一個字符串或符號作為定位元件的終止位置。
“之前”可以是定位元件的偏移在終止標(biāo)識的前一列/行結(jié)束。
“之后”可以是定位元件的偏移在終止標(biāo)識的后一列/行結(jié)束。
正偏移“+N”表示向下/右移動N列/行;負(fù)偏移“-N”表示向上/左移動N列/行。
在對一個數(shù)據(jù)文件中的數(shù)據(jù)單元的定位元件進(jìn)行屬性描述的時候,所有定位元件中的屬性“定位基準(zhǔn)單元”可以是相同的一個確定的數(shù)據(jù)單元,例如,某一個“文字”數(shù)據(jù)單元;也可以是任意一個已經(jīng)確定的數(shù)據(jù)單元。當(dāng)然也可以是通過數(shù)據(jù)單元的絕對坐標(biāo)進(jìn)行定位。
如圖2所示,數(shù)據(jù)單元A可以由一個“文字”數(shù)據(jù)單元通過字符串匹配定義。數(shù)據(jù)單元B,C和D可以由相對于數(shù)據(jù)單元A的位置和一些基本定位元件,如“行開始”,“行結(jié)束”,“列開始”,“列結(jié)束”等來確定。例如數(shù)據(jù)單元B的定位元件“左”可以通過如下屬性來定義,“定位基準(zhǔn)單元”=A,“起點”=“終止(End)”,“跳過”=+m列;數(shù)據(jù)單元D的定位元件“底”可以由下列屬性定義,“定位基準(zhǔn)單元”=A,“起點”=“終止(End)”,“跳過”=+u行。其它定位元件的屬性定義依次類推。
如果使用XML語句,利用定位元件的基本屬性來描述數(shù)據(jù)單元B,可以表述如下<SingleLineSpan>
<Top BASE=“A”,from=“Start”/>
<Left BASE=“A”,from=“End”,SKIP=“+m”>
<Right BASE=“RE”,from=“Start”,SKIP=“-n”>
</SingleLineSpan>
還可以使用基本屬性以外的其它的屬性來描述上述數(shù)據(jù)單元B的定位元件。例如,假設(shè)上述數(shù)據(jù)單元B中左邊緣第一個字符是“#”,則上述用XML語句描述的左邊緣的定位的語句可以改寫為<Left BASE=“A”,from=“End”,SKIP=“”,UNTIL=“#”>
本領(lǐng)域的技術(shù)人員將能夠理解,可以靈活地使用上述定義的屬性對數(shù)據(jù)單元的定位元件進(jìn)行描述。
另外,在上述例子中,數(shù)據(jù)單元B和D的“左”和“底”定位元件的屬性采用的是以確定的數(shù)據(jù)單元A為“定位基準(zhǔn)單元”的描述方式。當(dāng)然,對數(shù)據(jù)單元B和D的“左”和“底”定位元件的屬性還可以采用以任意的數(shù)據(jù)單元例如C為“定位基準(zhǔn)單元”的描述方式,其前提是任何一個數(shù)據(jù)單元的定位元件所參考的“定位基準(zhǔn)單元”是已經(jīng)被確定并且已經(jīng)被定位的數(shù)據(jù)單元。
根據(jù)本發(fā)明對數(shù)據(jù)單元進(jìn)行定位的方法至少包括以下幾種方式,一種是直接通過字符串進(jìn)行數(shù)據(jù)單元定位,一種是通過數(shù)據(jù)單元之間的相對坐標(biāo)進(jìn)行定位,還有一種是通過數(shù)據(jù)單元的絕對坐標(biāo)進(jìn)行定位。開發(fā)者可以根據(jù)需要靈活地使用這三種定位方法或它們的任意組合來定義數(shù)據(jù)單元的定位元件屬性。這體現(xiàn)了本發(fā)明的另一個優(yōu)點,即定位和截取設(shè)計的靈活性。
通過以上確定的數(shù)據(jù)單元,數(shù)據(jù)單元的定位元件,定位元件的屬性,可以對任何一種數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位。開發(fā)者可以根據(jù)目標(biāo)文件的格式特點和/或源數(shù)據(jù)文件的格式和/或內(nèi)容特點靈活地定位數(shù)據(jù)單元。
本領(lǐng)域技術(shù)人員將能夠理解,可以根據(jù)需要對本發(fā)明的數(shù)據(jù)單元,數(shù)據(jù)單元的定位元件,定位元件的屬性進(jìn)行擴(kuò)充,修改,以進(jìn)一步豐富基于本發(fā)明基于文本標(biāo)識匹配和二維空間坐標(biāo)位置的定位方法。
圖3示出根據(jù)本發(fā)明的數(shù)據(jù)定位方法的流程圖。
如圖3所示,在步驟S301,數(shù)據(jù)單元確定裝置101確定數(shù)據(jù)文件中要進(jìn)行定位的一個數(shù)據(jù)單元。
在步驟S302,類型確定裝置102為該數(shù)據(jù)單元確定一個類型。
在步驟S303,判斷該數(shù)據(jù)單元的類型是否為“文字”。
當(dāng)判斷為該類型不是“文字”的時候,前進(jìn)到步驟S304,由定位參照物確定裝置103為所述數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其參照物;在步驟S305,數(shù)據(jù)單元定位描述生成裝置104根據(jù)所述數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的位置的描述。
該描述包括所述數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,
定位元件包括“頂”、“底”、“左”、和“右”,每個定位元件包括一個屬性組合,以確定所述定位元件的位置,屬性包括“定位基準(zhǔn)單元”,它是所述另一個不同的數(shù)據(jù)單元,“起點”,它是“定位基準(zhǔn)單元”中的一個位置,用作所述定位元件的定位基準(zhǔn)位置,“跳過”,用于表示所述定位元件相對于所述“起點”的偏移量。
通過上述各步驟生成了要進(jìn)行定位的非文字型數(shù)據(jù)單元的定位描述。
在步驟S303,當(dāng)判斷為該類型為“文字”的時候,則前進(jìn)到步驟S306,采用文字匹配進(jìn)行定位處理。
對數(shù)據(jù)文件中其它的要進(jìn)行定位的數(shù)據(jù)單元進(jìn)行定位的過程和圖3的處理相同。
本領(lǐng)域的技術(shù)人員將能夠理解,當(dāng)某個數(shù)據(jù)單元包括子數(shù)據(jù)單元時,也就是說需要對一個數(shù)據(jù)單元進(jìn)行嵌套定位時,上述處理過程同樣適用于子數(shù)據(jù)單元的定位。
本領(lǐng)域技術(shù)人員將能夠理解,可以采用任何軟件或/和硬件的形式實現(xiàn)對本發(fā)明的數(shù)據(jù)單元,數(shù)據(jù)單元的定位元件,定位元件的屬性進(jìn)行確定的各裝置,程序,以及記錄該程序的記錄介質(zhì)等。
下面將舉例說明根據(jù)本發(fā)明的數(shù)據(jù)定位設(shè)備和方法進(jìn)行數(shù)據(jù)定位的處理過程。
圖4示出使用根據(jù)本發(fā)明的數(shù)據(jù)定位設(shè)備和方法進(jìn)行數(shù)據(jù)定位的顯示畫面。
在該顯示畫面的左上窗口中顯示出要進(jìn)行定位描述的一個數(shù)據(jù)源。該數(shù)據(jù)源由用戶加載到根據(jù)本發(fā)明的數(shù)據(jù)定位設(shè)備的顯示單元(未示出)中,并由該顯示單元以顯示畫面的形式展示給用戶。該顯示單元例如是計算機(jī)的顯示器。
在該左上窗口的左面有一個工具欄,供用戶使用來確定數(shù)據(jù)單元的類型。其中L表示“文字”,S表示“單行”,B表示“塊”,M表示“多行”,I表示“循環(huán)列表”當(dāng)用戶例如需要從該數(shù)據(jù)源中定位“Currency”數(shù)據(jù)單元時,該用戶首先利用未圖示的一個指點設(shè)備,例如鼠標(biāo),鍵盤等,通過在字符串“Currency”前定點并移動至該字符串結(jié)束為止的操作來標(biāo)識該數(shù)據(jù)單元。由數(shù)據(jù)單元確定裝置101確定該數(shù)據(jù)單元,并為該“Currency”數(shù)據(jù)單元分配一個識別號ID,以被其他數(shù)據(jù)單元做定位引用。
然后用戶用指點設(shè)備點擊工具欄中的L,從工具欄中選擇一個“文字”數(shù)據(jù)單元確定工具,由類型確定裝置102將該數(shù)據(jù)單元類型確定為“文字”。
接著,根據(jù)本發(fā)明的數(shù)據(jù)單元定位描述生成裝置104確定該數(shù)據(jù)單元的定位單元,即“頂”、“底”、“左”、“右”。由于“Currency”是一個位于數(shù)據(jù)文件中的常量,因此數(shù)據(jù)單元定位描述生成裝置104可以通過現(xiàn)有技術(shù)中字符串匹配等方法很容易地計算出“Currency”的定位單元的位置(坐標(biāo))。
這樣就定位了一個“Currency”文字?jǐn)?shù)據(jù)單元。
以下說明對非文字?jǐn)?shù)據(jù)單元,例如“Currency”后的包括“USD”的單行數(shù)據(jù)串進(jìn)行定位的過程。該字符串與“Currency”字符串的類型不同,因為該字符串是可變的,例如在其它數(shù)據(jù)文件中,該字符串可能是用另一個貨幣符號,例如“RM”,“DM”等結(jié)束的。
用戶利用指點設(shè)備,通過在字符串“Currency”后定點并移動至包括“USD”的該字符串結(jié)束為止的操作來標(biāo)識該數(shù)據(jù)單元。由數(shù)據(jù)單元確定裝置101確認(rèn)該數(shù)據(jù)單元,并為該數(shù)據(jù)單元分配一個識別號ID,以被其他數(shù)據(jù)單元做定位引用。在圖4中該數(shù)據(jù)單元被加深高亮顯示以提示用戶他當(dāng)前所選的數(shù)據(jù)單元。
然后該用戶使用指點設(shè)備點擊工具欄中的S,從工具欄中選擇一個“單行”數(shù)據(jù)單元確定工具,由類型確定裝置102將該數(shù)據(jù)單元類型確定為“單行”。
由于該數(shù)據(jù)單元不是“文字”類型的數(shù)據(jù)單元,因此定位參照物確定裝置103提示用戶利用指點設(shè)備選擇一個定位參照物。在上述例子中,用戶使用指點設(shè)備選擇“Currency”文字?jǐn)?shù)據(jù)單元作為該數(shù)據(jù)單元的定位參照物。
數(shù)據(jù)單元定位描述生成裝置104根據(jù)該數(shù)據(jù)單元的類型,即“單行”,以及該數(shù)據(jù)單元與該“Currency”文字?jǐn)?shù)據(jù)單元的位置關(guān)系,確定用“頂”(Top)、“底”(Left)、“右”(Right)這三個定位元件來確定它們與“Currency”的相對位置,即確定這些定位元件的位置。在本例中,由于包括“USD”的該單行字符串與“Currency”在數(shù)據(jù)文件中的位置已經(jīng)確定,因此,包括“USD”的該單行字符串的“頂”(Top)、“底”(Left)、“右”(Right)就能相對于定位參照物“Currency”確定下來。
在圖4所示的例子中,該數(shù)據(jù)單元定位描述生成裝置104生成的用XML語言描述的該包括“USD”的單行字符串?dāng)?shù)據(jù)單元的定位描述為<SingleLineSpan>
<Top BASE=“Currency”,from=“Start”,Skip=“”/>
<Left BASE=“Currency”,from=“End”/>
<Right BASE=“RE”,from=“Start”/>
</SingleLineSpan>
其中,當(dāng)Skip=“”時,表示跳過零行/列,因此可以省略其描述。另外“RE”指定位參照物的本行結(jié)尾。
在上述定位描述中,每個定位元件包括一個屬性組合,例如定位元件“頂(Top)”包含屬性“BASE(定位基準(zhǔn)單元)”、屬性“from(起點)”、屬性“skip(跳過)”這樣一個屬性組合。該屬性組合確定了定位元件“頂”的位置,即以“Currency”的頂作為其起點,跳過零行。
定位元件“左(Left)”包含屬性“BASE(定位基準(zhǔn)單元)”、屬性“from(起點)”、屬性“skip(跳過)”這樣一個屬性組合。該屬性組合確定了定位元件“左”的位置,即以“Currency”的列的終止位置作為其起點,跳過零行。
定位元件“右(Right)”包含屬性“BASE(定位基準(zhǔn)單元)”、屬性“from(起點)”、屬性“skip(跳過)”這樣一個屬性組合。該屬性組合確定了定位元件“右”的位置,即以“Currency”所在行的本行結(jié)尾位置作為其起點,跳過零行。
屬性BASE的值也可以是一個標(biāo)識符,例如上例中可寫成BASE=“ID1”,其中ID1是為“Currency”分配的一個標(biāo)識符。
本領(lǐng)域的技術(shù)人員將能夠理解,數(shù)據(jù)單元定位描述生成裝置104在確定該數(shù)據(jù)單元與該“Currency”文字?jǐn)?shù)據(jù)單元的位置關(guān)系的時候,可以通過已有的圖形識別,坐標(biāo)位置定位等來進(jìn)行。
在上述定位元件的位置被描述清楚之后,包括“USD”的單行字符串?dāng)?shù)據(jù)單元的位置就被描述清楚了。
通過上述圖4所描述的操作,可以對其他類型的數(shù)據(jù)單元進(jìn)行定位描述的生成。
可以將通過上述操作過程為數(shù)據(jù)源生成的數(shù)據(jù)單元定位描述存儲起來,并可以由本發(fā)明未圖示的顯示單元將進(jìn)行樣本操作的結(jié)果顯示出來。圖4的左下窗口中示出了使用數(shù)據(jù)單元定位描述對圖4的右上窗口中的樣本進(jìn)行數(shù)據(jù)定位和截取的結(jié)果。
另外,可以通過根據(jù)本發(fā)明的一個未示出的定位描述調(diào)整裝置,對由數(shù)據(jù)單元定位描述生成裝置104所生成的定位描述進(jìn)行調(diào)整。例如,當(dāng)包括“USD”的單行字符串?dāng)?shù)據(jù)單元的BASE改變的時候,各定位元件的屬性也要相應(yīng)改變,這時可以使用定位描述調(diào)整裝置來調(diào)整屬性。
下面將描述根據(jù)本發(fā)明的數(shù)據(jù)定位方法進(jìn)行數(shù)據(jù)轉(zhuǎn)換的設(shè)備和方法。
圖5示出根據(jù)本發(fā)明的數(shù)據(jù)轉(zhuǎn)換設(shè)備的功能方框圖。
該數(shù)據(jù)轉(zhuǎn)換設(shè)備通過使用圖1中的數(shù)據(jù)定位設(shè)備將具有第一格式的一個或多個源數(shù)據(jù)文件1101-110N中的數(shù)據(jù)轉(zhuǎn)換為具有第二格式的一個或多個目標(biāo)數(shù)據(jù)文件1201-20M中的數(shù)據(jù)。
如圖5所示,該數(shù)據(jù)轉(zhuǎn)換裝置包括數(shù)據(jù)定位設(shè)備401,格式映射裝置402,數(shù)據(jù)搜索裝置403,數(shù)據(jù)截取裝置404和數(shù)據(jù)轉(zhuǎn)換裝置405。
數(shù)據(jù)定位設(shè)備401的功能已經(jīng)結(jié)合圖1至圖4進(jìn)行了描述,它用于生成對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的數(shù)據(jù)單元定位描述;格式映射裝置402,在數(shù)據(jù)單元與第二格式之間建立起對應(yīng)關(guān)系;數(shù)據(jù)搜索裝置403,對源數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行搜索,確定其位置;數(shù)據(jù)截取裝置404,對已經(jīng)確定了位置的數(shù)據(jù)進(jìn)行截??;數(shù)據(jù)轉(zhuǎn)換裝置405,將截取的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù)。
具體而言,該數(shù)據(jù)定位設(shè)備401按照圖3所示的處理過程對樣本文件110s中需要被轉(zhuǎn)換的多個數(shù)據(jù)單元生成定位描述。另外,本領(lǐng)域的技術(shù)人員將能夠理解,也可以不使用樣本文件110s,而直接對需要從多個源數(shù)據(jù)文件1101-110N定位的數(shù)據(jù)進(jìn)行數(shù)據(jù)單元定位描述的生成。使用樣本文件進(jìn)行數(shù)據(jù)單元定位描述生成的技術(shù)解決方案尤其適用于對大批量的具有相同的固定結(jié)構(gòu)的數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換的情況。
關(guān)于一個或多個源數(shù)據(jù)文件1101-110N,它們可以是一批具有相同的格式特征(在平面坐標(biāo)上具有共同的定位特點)的數(shù)據(jù)文件,也可以是各種不同的數(shù)據(jù)文件,但是通過從各個文件中定位出所需要的數(shù)據(jù),并將所定位的數(shù)據(jù)截取出來并輸出到同一個新的目標(biāo)文件中,從而生成新的目標(biāo)文件的那些源數(shù)據(jù)文件。本發(fā)明適用于任何可以進(jìn)行數(shù)據(jù)定位的源數(shù)據(jù)文件中。
根據(jù)本發(fā)明的一個實施例,可以從具有相同的格式特征的源數(shù)據(jù)文件1101-110N中任意選取一個樣本文件110s(1≤S≤N),生成適用于對所有源數(shù)據(jù)文件1101-110N進(jìn)行數(shù)據(jù)定位的數(shù)據(jù)單元定位描述,該實施例尤其適用于進(jìn)行批處理文件的數(shù)據(jù)定位和截取的情況。
根據(jù)本發(fā)明的另一個實施例,可以根據(jù)多個不同類型的源數(shù)據(jù)文件1101-110N中那些需要被轉(zhuǎn)換到目標(biāo)文件的相應(yīng)的位置區(qū)域上的數(shù)據(jù)的定位特性,生成所有需要從源數(shù)據(jù)文件1101-110N進(jìn)行數(shù)據(jù)定位的數(shù)據(jù)單元定位描述。該實施例尤其適用于從多個不同的源數(shù)據(jù)文件中抽取不同的數(shù)據(jù),從而生成一個目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù)的情況。
然后,所生成的數(shù)據(jù)單元定位描述可以被數(shù)據(jù)搜索裝置403和數(shù)據(jù)截取裝置404應(yīng)用到所有的源數(shù)據(jù)文件1101-110N中,以對源數(shù)據(jù)文件1101-110N進(jìn)行數(shù)據(jù)單元定位和截取,從中定位和截取出要轉(zhuǎn)換為目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù)的各數(shù)據(jù)單元。
該格式映射裝置402,在由數(shù)據(jù)定位設(shè)備401所定位的數(shù)據(jù)單元與目標(biāo)數(shù)據(jù)文件的格式之間建立起對應(yīng)關(guān)系。
在對源數(shù)據(jù)文件中的數(shù)據(jù)生成要進(jìn)行定位的數(shù)據(jù)單元定位描述的同時,還要根據(jù)目標(biāo)數(shù)據(jù)文件的格式特點將每一個被確定要進(jìn)行定位的數(shù)據(jù)單元與目標(biāo)數(shù)據(jù)文件的相應(yīng)格式(相應(yīng)區(qū)域)對應(yīng)起來,這樣才能最終將源數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù)。因此要在要進(jìn)行定位的數(shù)據(jù)單元與目標(biāo)數(shù)據(jù)文件的格式之間建立起對應(yīng)關(guān)系。
這里需要強(qiáng)調(diào)的是,所謂目標(biāo)文件的格式,可以是任意特定的文本格式,也可以是網(wǎng)絡(luò)上統(tǒng)一的數(shù)據(jù)格式,例如XML等,根據(jù)用戶的需要而定。
另外,在這里需要強(qiáng)調(diào)的是,根據(jù)輸出的文本格式要求,通過格式映射建立起的對應(yīng)關(guān)系可以是包括針對多種輸出文本格式的多組格式映射對應(yīng)關(guān)系,其中每組對應(yīng)關(guān)系都定義了要進(jìn)行定位的數(shù)據(jù)單元與某個特定的目標(biāo)文件的格式的對應(yīng)關(guān)系。于是,根據(jù)本發(fā)明,可以根據(jù)需要產(chǎn)生多種格式的輸出。
數(shù)據(jù)轉(zhuǎn)換裝置405,根據(jù)格式映射裝置402在要進(jìn)行定位的數(shù)據(jù)單元與目標(biāo)數(shù)據(jù)文件的特定格式之間建立起的對應(yīng)關(guān)系,將被數(shù)據(jù)截取裝置404所截取的數(shù)據(jù)單元轉(zhuǎn)換為具有特定格式的目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù)或輸出到目標(biāo)數(shù)據(jù)文件的相應(yīng)區(qū)域。
本領(lǐng)域技術(shù)人員將能夠理解,可以采用任何軟件或/和硬件的形式實現(xiàn)本發(fā)明的數(shù)據(jù)轉(zhuǎn)換設(shè)備中的各裝置的功能。例如可以采用周知的計算機(jī),WEB服務(wù)器,網(wǎng)絡(luò)和/或運行在這些設(shè)施中的軟件來實現(xiàn)本發(fā)明。
這里需要指出的是,本發(fā)明還可以包括一個數(shù)據(jù)單元定位描述存儲裝置和格式映射對應(yīng)關(guān)系存儲裝置,來存儲由數(shù)據(jù)定位設(shè)備和格式映射裝置所產(chǎn)生的數(shù)據(jù)單元定位描述以及各對應(yīng)關(guān)系,以備以后進(jìn)行數(shù)據(jù)轉(zhuǎn)換時使用。這些存儲裝置可以采用任何已知的硬件來實現(xiàn),例如硬盤,軟盤,存儲器等等。本領(lǐng)域的技術(shù)人員將能夠理解,上述存儲裝置也可以用軟件的形式實現(xiàn),例如可以存儲在數(shù)據(jù)庫,數(shù)據(jù)文件等中。
另外,本領(lǐng)域技術(shù)人員當(dāng)然能夠理解,可以將這兩個存儲裝置合并起來實現(xiàn)。
本發(fā)明的數(shù)據(jù)定位設(shè)備和數(shù)據(jù)轉(zhuǎn)換設(shè)備采用基于文本表示匹配和二維空間坐標(biāo)位置定位的數(shù)據(jù)定位方法,該方法和現(xiàn)有技術(shù)中基于關(guān)鍵字或語義的數(shù)據(jù)定位和截取方法相比有著很大的優(yōu)點,主要表現(xiàn)在數(shù)據(jù)定位和截取的靈活性和擴(kuò)展性得到的改善。
圖5示出根據(jù)本發(fā)明的數(shù)據(jù)轉(zhuǎn)換方法將源數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù)的流程圖。
其中在步驟S501,對源數(shù)據(jù)文件1101-110N中的數(shù)據(jù)進(jìn)行定位,為源數(shù)據(jù)文件中要進(jìn)行定位的一個或多個數(shù)據(jù)單元生成數(shù)據(jù)定位描述, 關(guān)于該定位步驟的詳細(xì)描述可以參看圖3。
在步驟S502,在要被定位的數(shù)據(jù)和目標(biāo)文件的特定格式之間建立起對應(yīng)關(guān)系,即在要被定位的數(shù)據(jù)單元與目標(biāo)數(shù)據(jù)文件的特定格式之間建立起對應(yīng)關(guān)系。
在步驟S503,對源數(shù)據(jù)文件1101-110N,進(jìn)行數(shù)據(jù)定位,即根據(jù)該一個或多個數(shù)據(jù)單元定位描述,對源數(shù)據(jù)文件進(jìn)行數(shù)據(jù)單元定位。
在步驟S504,對源數(shù)據(jù)文件1101-110N,將被定位的數(shù)據(jù)單元截取出來。
在步驟S505,將截取的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù),其中根據(jù)在步驟S502中在要被定位的一個或多個數(shù)據(jù)單元與目標(biāo)數(shù)據(jù)文件的特定格式之間建立起的對應(yīng)關(guān)系,對源數(shù)據(jù)文件,將被步驟S504截取出的數(shù)據(jù)單元轉(zhuǎn)換為目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù)。
圖6示出在由數(shù)據(jù)定位設(shè)備對多個源數(shù)據(jù)文件進(jìn)行數(shù)據(jù)定位之后,根據(jù)本發(fā)明的數(shù)據(jù)轉(zhuǎn)換設(shè)備對該多個源數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換的流程圖。
在步驟S601,確定一個要處理的源數(shù)據(jù)文件。
在步驟S605,根據(jù)由數(shù)據(jù)定位設(shè)備401所生成的一個數(shù)據(jù)單元定位描述,由數(shù)據(jù)搜索裝置403和數(shù)據(jù)截取裝置404從源數(shù)據(jù)文件中定位和截取一個數(shù)據(jù)單元。
在步驟S610,根據(jù)格式映射裝置402為該定義的數(shù)據(jù)單元所建立的對應(yīng)關(guān)系,將截取出的數(shù)據(jù)單元,輸出到目標(biāo)數(shù)據(jù)文件的相應(yīng)區(qū)域。
在步驟S615,判斷是否還有需要處理的數(shù)據(jù)單元。當(dāng)判定結(jié)果是還有數(shù)據(jù)單元需要處理的數(shù)據(jù)單元時,返回到步驟S605繼續(xù)進(jìn)行處理。否則前進(jìn)到步驟S620。
在步驟S620,最終將源數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)文件中的數(shù)據(jù)。
在步驟S625,判斷是否還有需要處理的源數(shù)據(jù)文件。當(dāng)判定結(jié)果是還有需要處理的源數(shù)據(jù)文件時,返回到步驟S601繼續(xù)進(jìn)行處理。否則處理結(jié)束。
本領(lǐng)域技術(shù)人員將能夠理解,當(dāng)源數(shù)據(jù)文件中某些要進(jìn)行定位的數(shù)據(jù)單元或其與目標(biāo)數(shù)據(jù)文件的格式之間的對應(yīng)關(guān)系發(fā)生變化的時候,僅需由數(shù)據(jù)定位設(shè)備401或格式映射裝置對變化的數(shù)據(jù)單元的定位或?qū)?yīng)關(guān)系重新設(shè)置即可。而數(shù)據(jù)搜索裝置403,數(shù)據(jù)截取裝置404和數(shù)據(jù)轉(zhuǎn)換裝置405的操作不需進(jìn)行任何改變。從而提供了數(shù)據(jù)單元定位和對應(yīng)關(guān)系更改的靈活性。尤其是在進(jìn)行批處理數(shù)據(jù)轉(zhuǎn)換的情形下,可以僅進(jìn)行一次數(shù)據(jù)單元定位描述生成處理和對應(yīng)關(guān)系設(shè)定處理,并將其應(yīng)用到數(shù)據(jù)轉(zhuǎn)換處理中;而在以后僅僅對變化的數(shù)據(jù)單元生成定位描述和重新設(shè)定對應(yīng)關(guān)系,從而大大減輕了工作量。
另外,現(xiàn)有的各種應(yīng)用系統(tǒng),都可以采用本發(fā)明的數(shù)據(jù)定位方法來將自己的數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)文件中的數(shù)據(jù);另外由于不需要重新定制專門適用自己的應(yīng)用系統(tǒng)的專用數(shù)據(jù)轉(zhuǎn)換工具,因而可以降低其開發(fā)成本。
由于本發(fā)明采用了基于文本標(biāo)識匹配和二維空間坐標(biāo)位置定位的數(shù)據(jù)定位和轉(zhuǎn)換方法,因而它可以應(yīng)用于采用任何類型的源文件中。
本領(lǐng)域技術(shù)人員將能夠理解,可以采用任何軟件或/和硬件的形式,以及記錄該程序的記錄介質(zhì)等記錄實現(xiàn)本發(fā)明的數(shù)據(jù)轉(zhuǎn)換方法的操作過程。
應(yīng)該注意的是,上面所描述的實施方式只是用于說明本發(fā)明,并不構(gòu)成對本發(fā)明的限制。
雖然結(jié)合附圖詳細(xì)描述了本發(fā)明的實施例,但是對于本領(lǐng)域的技術(shù)人員來說,仍可以對上述實施方式作出各種修改和變更而不偏離本發(fā)明的實質(zhì)和范圍。因此,本發(fā)明的范圍僅由所附權(quán)利要求書限定。
權(quán)利要求
1.一種對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的方法,包括步驟確定所述數(shù)據(jù)文件中要進(jìn)行定位的數(shù)據(jù)單元;為所述數(shù)據(jù)單元確定一個類型,類型包括“文字”、“單行”、“多行”、“塊”和“循環(huán)列表”;當(dāng)所述數(shù)據(jù)單元的類型不是“文字”的時候,為所述數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其定位參照物;根據(jù)所述數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的定位描述,該描述包括所述數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,定位元件包括“頂”、“底”、“左”、和“右”,每個定位元件包括一個屬性組合,以確定所述定位元件的位置,屬性包括“定位基準(zhǔn)單元”,它是所述另一個不同的數(shù)據(jù)單元,“起點”,它是“定位基準(zhǔn)單元”中的一個位置,用作所述定位元件的定位基準(zhǔn)位置;“跳過”,用于表示所述定位元件相對于所述“起點”的偏移量。
2.根據(jù)權(quán)利要求1所述的對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的方法,其特征在于,所述“定位基準(zhǔn)單元”是一個“文字”類型的數(shù)據(jù)單元或者是已經(jīng)確定了各定位元件的屬性的任意一個數(shù)據(jù)單元。
3.根據(jù)權(quán)利要求1或2所述的對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的方法,其特征在于,所述屬性還包括“直到”,用于表示所述定位元件的偏移在一個標(biāo)識處結(jié)束;“之前”,用于表示所述定位元件的偏移在一個標(biāo)識之前結(jié)束;“之后”,用于表示所述定位元件的偏移在一個標(biāo)識之后結(jié)束。
4.根據(jù)權(quán)利要求1或2所述的對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的方法,其特征在于,所述“起點”為所述“定位基準(zhǔn)單元”的起始位置或終止位置。
5.一種對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的設(shè)備,包括數(shù)據(jù)單元確定裝置,類型確定裝置,定位參照物確定裝置和數(shù)據(jù)單元定位描述生成裝置,所述數(shù)據(jù)單元確定裝置確定所述數(shù)據(jù)文件中要進(jìn)行定位的數(shù)據(jù)單元,所述類型確定裝置為所述數(shù)據(jù)單元確定一個類型,類型包括“文字”、“單行”、“多行”、“塊”和“循環(huán)列表”,當(dāng)所述數(shù)據(jù)單元的類型不是“文字”的時候,所述定位參照物確定裝置為所述數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其定位參照物;所述數(shù)據(jù)單元定位描述生成裝置根據(jù)所述數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的位置的描述,該描述包括所述數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,定位元件包括“頂”、“底”、“左”、和“右”,每個定位元件包括一個屬性組合,以確定所述定位元件的位置,屬性包括“定位基準(zhǔn)單元”,它是所述另一個不同的數(shù)據(jù)單元,“起點”,它是“定位基準(zhǔn)單元”中的一個位置,用作所述定位元件的定位基準(zhǔn)位置,“跳過”,用于表示所述定位元件相對于所述“起點”的偏移量。
6.根據(jù)權(quán)利要求5所述的對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的設(shè)備,其特征在于,所述“定位基準(zhǔn)單元”是一個“文字”類型的數(shù)據(jù)單元或者是已經(jīng)確定了各定位元件的屬性的任意一個數(shù)據(jù)單元。
7.根據(jù)權(quán)利要求5或6所述的對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的設(shè)備,其特征在于,所述屬性還包括“直到”,用于表示所述定位元件的偏移在一個標(biāo)識處結(jié)束;“之前”,用于表示所述定位元件的偏移在一個標(biāo)識之前結(jié)束;“之后”,用于表示所述定位元件的偏移在一個標(biāo)識之后結(jié)束。
8.根據(jù)權(quán)利要求5或6所述的對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行定位的設(shè)備,其特征在于,所述“起點”為所述“定位基準(zhǔn)單元”的起始位置或終止位置。
9.一種數(shù)據(jù)轉(zhuǎn)換方法,用于將第一格式的第一數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為第二格式的第二數(shù)據(jù)文件中的數(shù)據(jù),該數(shù)據(jù)轉(zhuǎn)換方法包括數(shù)據(jù)搜索步驟,對第一數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行搜索,確定數(shù)據(jù)位置;數(shù)據(jù)截取步驟,截取已經(jīng)被確定位置的數(shù)據(jù);以及數(shù)據(jù)轉(zhuǎn)換步驟,將截取的數(shù)據(jù)轉(zhuǎn)換為第二數(shù)據(jù)文件中的數(shù)據(jù),其特征在于在所述數(shù)據(jù)搜索步驟之前,生成所述第一數(shù)據(jù)文件中要進(jìn)行定位的一個或多個數(shù)據(jù)單元的定位描述,以及在所述數(shù)據(jù)單元與所述第二數(shù)據(jù)文件的所述第二格式之間建立起對應(yīng)關(guān)系,并且對于每個所述數(shù)據(jù)單元執(zhí)行如下步驟為所述數(shù)據(jù)單元定義一個類型,類型包括“文字”、“單行”、“多行”、“塊”和“循環(huán)列表”;當(dāng)所述數(shù)據(jù)單元的類型不是“文字”的時候,為所述數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其定位參照物;根據(jù)所述數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的位置的描述,該描述包括所述數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,定位元件包括“頂”、“底”、“左”、和“右”,每個定位元件包括一個屬性組合,以確定所述定位元件的位置,屬性包括“定位基準(zhǔn)單元”,它是所述另一個不同的數(shù)據(jù)單元,“起點”,它是“定位基準(zhǔn)單元”中的一個位置,用作所述定位元件的定位基準(zhǔn)位置;“跳過”,用于表示所述定位元件相對于所述“起點”的偏移量,所述數(shù)據(jù)搜索步驟,根據(jù)所述一個或多個數(shù)據(jù)單元定位描述進(jìn)行數(shù)據(jù)單元定位;所述數(shù)據(jù)截取步驟,將被定位的一個或多個數(shù)據(jù)單元截取出來,所述數(shù)據(jù)轉(zhuǎn)換步驟,根據(jù)在所述一個或多個數(shù)據(jù)單元與所述第二格式之間建立起的對應(yīng)關(guān)系,對所述第一數(shù)據(jù)文件,將被所述數(shù)據(jù)截取步驟截取的數(shù)據(jù)單元轉(zhuǎn)換為具有第二格式的數(shù)據(jù),從而生成相應(yīng)的一個或多個第二數(shù)據(jù)文件中的數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)轉(zhuǎn)換方法,其特征在于,所述“定位基準(zhǔn)單元”是一個“文字”類型的數(shù)據(jù)單元或者是已經(jīng)確定了各定位元件的屬性的任意一個數(shù)據(jù)單元。
11.根據(jù)權(quán)利要求9或10所述的數(shù)據(jù)轉(zhuǎn)換方法,其特征在于,所述屬性還包括“直到”,用于表示所述定位元件的偏移在一個標(biāo)識處結(jié)束;“之前”,用于表示所述定位元件的偏移在一個標(biāo)識之前結(jié)束;“之后”,用于表示所述定位元件的偏移在一個標(biāo)識之后結(jié)束。
12.根據(jù)權(quán)利要求9或10所述的數(shù)據(jù)轉(zhuǎn)換方法,其特征在于,所述“起點”為所述“定位基準(zhǔn)單元”的起始位置或終止位置。
13.一種數(shù)據(jù)轉(zhuǎn)換設(shè)備,用于將第一格式的第一數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為第二格式的第二數(shù)據(jù)文件中的數(shù)據(jù),該數(shù)據(jù)轉(zhuǎn)換設(shè)備包括數(shù)據(jù)搜索裝置,對第一數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行搜索,確定其位置;數(shù)據(jù)截取裝置,截取已經(jīng)被確定位置的數(shù)據(jù);以及數(shù)據(jù)轉(zhuǎn)換裝置,將截取的數(shù)據(jù)轉(zhuǎn)換為第二數(shù)據(jù)文件中的數(shù)據(jù),其特征在于該數(shù)據(jù)轉(zhuǎn)換設(shè)備還包括數(shù)據(jù)單元確定裝置,類型確定裝置,定位參照物確定裝置,數(shù)據(jù)單元定位描述生成裝置和格式映射裝置,所述數(shù)據(jù)單元確定裝置確定所述數(shù)據(jù)文件中要進(jìn)行定位的一個或多個數(shù)據(jù)單元,并且對于每個所述數(shù)據(jù)單元執(zhí)行如下步驟所述類型確定裝置為所述數(shù)據(jù)單元確定一個類型,類型包括“文字”、“單行”、“多行”、“塊”和“循環(huán)列表”,當(dāng)所述數(shù)據(jù)單元的類型不是“文字”的時候,所述定位參照物確定裝置為所述數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其定位參照物;所述數(shù)據(jù)單元定位描述生成裝置根據(jù)所述數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的位置的描述,該描述包括所述數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,定位元件包括“頂”、“底”、“左”、和“右”,每個定位元件包括一個屬性組合,以確定所述定位元件的位置,屬性包括“定位基準(zhǔn)單元”,它是所述另一個不同的數(shù)據(jù)單元,“起點”,它是“定位基準(zhǔn)單元”中的一個位置,用作所述定位元件的定位基準(zhǔn)位置,“跳過”,用于表示所述定位元件相對于所述“起點”的偏移量,所述格式映射裝置,在所述一個或多個數(shù)據(jù)單元與所述第二數(shù)據(jù)文件的所述第二格式之間建立起對應(yīng)關(guān)系,所述數(shù)據(jù)搜索裝置,根據(jù)所述數(shù)據(jù)單元定位描述進(jìn)行數(shù)據(jù)單元搜索,確定其位置;所述數(shù)據(jù)截取裝置,將被確定位置的一個或多個數(shù)據(jù)單元截取出來,所述數(shù)據(jù)轉(zhuǎn)換裝置,根據(jù)所述格式映射裝置在所述一個或多個數(shù)據(jù)單元與所述第二格式之間建立起的對應(yīng)關(guān)系,對所述第一數(shù)據(jù)文件,將被所述數(shù)據(jù)截取裝置截取的數(shù)據(jù)單元轉(zhuǎn)換為具有第二格式的數(shù)據(jù),從而生成相應(yīng)的一個或多個第二數(shù)據(jù)文件中的數(shù)據(jù)。
14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)轉(zhuǎn)換設(shè)備,其特征在于,所述“定位基準(zhǔn)單元”是一個“文字”類型的數(shù)據(jù)單元或者是已經(jīng)確定了各定位元件的屬性的任意一個數(shù)據(jù)單元。
15.根據(jù)權(quán)利要求13或14所述的數(shù)據(jù)轉(zhuǎn)換設(shè)備,其特征在于,所述屬性還包括“直到”,用于表示所述定位元件的偏移在一個標(biāo)識處結(jié)束;“之前”,用于表示所述定位元件的偏移在一個標(biāo)識之前結(jié)束;“之后”,用于表示所述定位元件的偏移在一個標(biāo)識之后結(jié)束。
16.根據(jù)權(quán)利要求13或14所述的數(shù)據(jù)轉(zhuǎn)換設(shè)備,其特征在于,所述“起點”為所述“定位基準(zhǔn)單元”的起始位置或終止位置。
全文摘要
本發(fā)明提供了對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行數(shù)據(jù)定位及數(shù)據(jù)轉(zhuǎn)換的方法及設(shè)備。本發(fā)明的數(shù)據(jù)定位方法,包括步驟確定數(shù)據(jù)文件中要進(jìn)行定位的數(shù)據(jù)單元;為數(shù)據(jù)單元確定一個類型,類型包括“文字”、“單行”、“多行”、“塊”和“循環(huán)列表”;當(dāng)數(shù)據(jù)單元的類型不是“文字”的時候,為數(shù)據(jù)單元選取另一個不同的數(shù)據(jù)單元作為其定位參照物;根據(jù)數(shù)據(jù)單元的類型以及該數(shù)據(jù)單元與該另一個不同的數(shù)據(jù)單元的位置關(guān)系,生成該數(shù)據(jù)單元的定位描述,該描述包括數(shù)據(jù)單元的類型,用于定位該數(shù)據(jù)單元的一個或多個定位元件,定位元件包括“頂”、“底”、“左”和“右”,每個定位元件包括一個屬性組合,以確定定位元件的位置。本發(fā)明可以根據(jù)數(shù)據(jù)二維空間區(qū)域進(jìn)行數(shù)據(jù)位置定位。
文檔編號G06F17/00GK1492358SQ02147150
公開日2004年4月28日 申請日期2002年10月24日 優(yōu)先權(quán)日2002年10月24日
發(fā)明者葉盛, 孫偉, 田忠, 葉 盛 申請人:國際商業(yè)機(jī)器公司