、2~8字節(jié)浮點數(shù)、任意Bit的數(shù)字,且根據(jù)需要可對 代碼生成工具進行擴展;
[0031] 變量是否保存在文件中,可在格式描述文件ZFS中通過表達式動態(tài)指定;該表達 式可以被生成相應的代碼;
[0032] 所述的復合類型變量由多個變量組合而成,復合類型變量可定義傳入的參數(shù);參 數(shù)的類型可以是基本類型,也可以是復合類型;
[0033] 所述的復合類型變量可被定義為聯(lián)合體,在輸出至二進制文件時復合類型中的多 個變量占用同一存儲空間且只有一個為有效;在輸出二進制文件時,可自動計算并回寫相 應的信息。如圖3所述格式:"記錄總Size"中保存其后的記錄的在文件中存儲所占空間 的大小。在ZFS中對此進行描述,則在使用生成的代碼輸出文件時,可自動計算并將正確的 "記錄總Size"的值寫出至文件。
[0034] 所述的變量可以是一個數(shù)組,數(shù)組長度可以通過表達式動態(tài)指定。變量之間可以 存在對齊標識,使變量的起始位置按照整數(shù)字節(jié)數(shù)對齊存儲。變量與變量之間可以存在忽 略區(qū)間,使變量之間加入空白區(qū)域。除復合類型中的變量外,還可定義臨時變量用于讀寫過 程中的計算。其中復合類型可定義回寫信息,即變量與變量之間的關系。如:記錄的數(shù)量、 在文件中的偏移、保存的Size等。
[0035] 格式描述文件ZFS也可以保存為基于XML的擴展格式。
[0036] 下面結合具體實施應用對本發(fā)明做進一步的詳細說明。假設有如下文件格式:
[0037] 整個文件-DataFrame
[0038] 文件頭-FileHeader
[0039] ?數(shù)據(jù)項:記錄的個數(shù)
[0040] 記錄的排列-DataRecList
[0041] 記錄 #l_DataRec
[0042] ?數(shù)據(jù)項1
[0043] ?數(shù)據(jù)項2
[0044] 記錄 #2_DataRec
[0045] ?數(shù)據(jù)項1
[0046] ?數(shù)據(jù)項2
[0047] ......
[0048] 記錄 #n_DataRec
[0049] ?數(shù)據(jù)項1
[0050] ?數(shù)據(jù)項2
[0051] 使用本發(fā)明提供的GUI工具定義格式。或按照ZFS格式標準編寫格式定義。
[0052]
【主權項】
1. 一種生成用于讀寫二進制文件代碼的方法,其特征在于,步驟如下:首先,使用 GUI工具定義二進制文件格式,所定義的文件格式保存為格式描述文件ZFS(Z Format Standard);然后,編譯該格式描述文件,生成讀寫該格式的文件的代碼;生成檢查該格式 的文件的工具;生成Dump該格式的文件的工具;生成一套專用于嵌入式系統(tǒng)的函數(shù)庫代 碼; 所述的格式描述文件ZFS整體的屬性包括記錄格式的名稱、標題、字節(jié)序、是否以Bit 流存儲、代表文件整體的復合類型、Schema文件的相對路徑; 所述的格式描述文件ZFS的文件格式包含一個或多個復合類型的定義及其回寫信息; 每個復合類型中可以包含一個或多個變量;變量的類型可以是基本類型或復合類型; 所述的格式描述文件ZFS中可指定字節(jié)序,即文件中保存的數(shù)值的字節(jié)序與內存中相 同或不同; 所述的格式描述文件ZFS可以嵌套包含,被包含的ZFS中的復合類型可以在包含它的 ZFS文件中使用。
2. 根據(jù)權利要求1所述的一種生成用于讀寫二進制文件代碼的方法,其特征在于:所 述的變量的類型可以是基本類型或復合類型;其中基本類型至少包括1字節(jié)~8字節(jié)的整 數(shù)、單字節(jié)與寬字節(jié)字符串、2~8字節(jié)浮點數(shù)、任意Bit的數(shù)字,且根據(jù)需要可對代碼生成工 具進行擴展; 變量是否保存在文件中,可在格式描述文件ZFS中通過表達式動態(tài)指定;該表達式可 以被生成相應的代碼; 所述的復合類型變量由多個變量組合而成,復合類型變量可定義傳入的參數(shù);參數(shù)的 類型可以是基本類型,也可以是復合類型; 所述的復合類型變量可被定義為聯(lián)合體,在輸出至二進制文件時復合類型中的多個變 量占用同一存儲空間且只有一個為有效; 所述的復合類型可定義回寫信息,所述的回寫信息包括記錄的數(shù)量、在文件中的偏移、 保存的Size。
3. 根據(jù)權利要求2所述的一種生成用于讀寫二進制文件代碼的方法,其特征在于:所 述的變量是一個數(shù)組,數(shù)組長度可以通過表達式動態(tài)指定。
4. 根據(jù)權利要求2所述的一種生成用于讀寫二進制文件代碼的方法,其特征在于:所 述的變量之間存在對齊標識,使變量的起始位置按照整數(shù)字節(jié)數(shù)對齊存儲。
5. 根據(jù)權利要求2所述的一種生成用于讀寫二進制文件代碼的方法,其特征在于:所 述的變量與變量之間存在忽略區(qū)間,使變量之間加入空白區(qū)域。
6. 根據(jù)權利要求2所述的一種生成用于讀寫二進制文件代碼的方法,其特征在于:除 復合類型中的變量外,還可定義臨時變量用于讀寫過程中的計算。
7. 根據(jù)權利要求1所述的一種生成用于讀寫二進制文件代碼的方法,其特征在于:將 所述的格式描述文件ZFS保存為基于XML的擴展格式。
【專利摘要】本發(fā)明提供了一種生成用于讀寫二進制格式文件代碼的方法,其步驟如下:首先,使用GUI工具定義二進制文件格式,所定義的文件格式保存為格式描述文件ZFS;然后,編譯該格式描述文件,生成讀寫該格式的文件的代碼;生成檢查該格式的文件的工具;生成Dump該格式的文件的工具;生成一套專用于嵌入式系統(tǒng)的函數(shù)庫代碼。采用該方法生成的用于寫文件的代碼中,自動完成一些記錄數(shù)量、偏移量、Size等的計算與回寫,極大的簡化了開發(fā)。同時生成的格式檢查工具與Dump工具等,便于驗證為寫出文件的正確性。本發(fā)明所定義的文件格式描述的標準,可用于定義任意二進制文件格式;采用XML擴展形式,便于維護和理解;同時提供的GUI編輯器,便于文件格式定義。
【IPC分類】G06F9-44
【公開號】CN104834508
【申請?zhí)枴緾N201410047843
【發(fā)明人】趙一偉, 張權鎮(zhèn)
【申請人】沈陽瑞達信邦科技有限公司
【公開日】2015年8月12日
【申請日】2014年2月11日