一種生成asn1數據文件的便捷編碼方法
【專利摘要】本發(fā)明涉及一種生成ASN1數據文件的便捷編碼方法,包括:編寫配置文件并解析到內存中;讀取定長文件;找到定長文件相應的配置規(guī)則;從定長文件中讀取一條定長記錄;根據配置規(guī)則將從定長記錄中獲取的字段值存到ASN1結構樹的相應節(jié)點上;判斷定長文件中的定長記錄是否均已處理完如果處理完畢,如果處理完畢則對由定長文件生成的ASN1的結構樹進行編碼,生成ASN1數據文件,否則重復上述步驟,直至定長文件中所有定長記錄的所有字段均已處理完畢;本發(fā)明所述方法利用配置文件,將要生成ASN1數據文件的格式進行靈活配置,使得ASN1數據文件可以被高效的、靈活的組裝。
【專利說明】一種生成ASN1數據文件的便捷編碼方法
【技術領域】
[0001]本發(fā)明涉及文件編碼方法,尤其涉及一種便捷的ASNl數據文件的編碼方法,特別是在電信系統(tǒng)內部需要封裝鍋中格式的ASNl數據文件時使用。
【背景技術】
[0002]隨著電信運營商不斷的發(fā)展,業(yè)務擴展越來越廣,各種新業(yè)務層出不窮;各種業(yè)務話單傳輸過程中,承載的載體也不同,一種協(xié)議編碼的文件要承載多種格式的業(yè)務話單。
[0003]傳統(tǒng)的封裝方法,是將業(yè)務格式定義在程序里面,這樣就造成了新增業(yè)務和修改業(yè)務時,需要對程序的修改,工作量大,風險高。
[0004]為了應對這種業(yè)務多變性,減少修改程序造成的風險,發(fā)明一種高效的數據封裝方法是非常有必要,也是非常有幫助的。
【發(fā)明內容】
[0005]本發(fā)明所要解決的技術問題是針對現有技術的不足,提供一種生成ASNl數據文件的便捷編碼方法。
[0006]ASNl 抽象語法標記(Abstract Syntax Notation One)ASNl 是一種 IS0/ITU-T 標準,描述了一種對數據進行表示、編碼、傳輸和解碼的數據格式。
[0007]定長文件指其內存儲的定長記錄的長度都是固定的,如話單文件。
[0008]本發(fā)明解決上述技術問題的技術方案如下:一種生成ASNl數據文件的便捷編碼方法,包括如下步驟:
[0009]步驟1:編寫一個由若干套配置規(guī)則組成的配置文件,每套配置規(guī)則設有一個文件頭;
[0010]步驟2:將配置文件解析到內存中;
[0011]步驟3:將一個定長文件讀入內存;
[0012]步驟4:將定長文件的文件名與配置文件中所有配置規(guī)則的頭文件進行最長匹配,查找相應的配置規(guī)則,如果找到,則進入步驟5,否則發(fā)出系統(tǒng)告警,結束;
[0013]步驟5:從定長文件中讀取一條定長記錄;
[0014]步驟6:根據配置規(guī)則將從所述定長記錄中獲取的字段值存到ASNl結構樹的相應節(jié)點上;
[0015]步驟7:判斷定長文件中的所有定長記錄是否均已處理完,如果處理完畢,則進入步驟8,否則返回步驟5 ;
[0016]步驟8:對由定長文件生成的ASNl的結構樹進行編碼,生成ASNl數據文件,結束。
[0017]在上述技術方案的基礎上,本發(fā)明還可以做如下改進。
[0018]進一步,所述配置文件中包括若干套配置規(guī)則,每套配置規(guī)則中包括若干條規(guī)則項。
[0019]進一步,所述規(guī)則項包括名稱規(guī)則項、起始位置規(guī)則項、長度規(guī)則項、路徑規(guī)則項和數據類型規(guī)則項;
[0020]所述名稱規(guī)則項標識所要獲取的字段值的字段的名稱;
[0021]所述起始位置規(guī)則項標識所要獲取的字段值在定長記錄中的開始位置;
[0022]所述長度規(guī)則項標識所要獲取的字段值在定長記錄中的長度;
[0023]所述路徑規(guī)則項標識獲取的字段值將要存入ASNl結構樹的路徑;
[0024]所述數據類型規(guī)則項標識獲取的字段值以何種數據類型存入ASNl結構樹。
[0025]進一步,步驟6中根據配置規(guī)則將從所述定長記錄中獲取的字段值存到ASNl結構樹的相應節(jié)點上的具體步驟如下:
[0026]步驟6.1:根據配置規(guī)則中的起始位置規(guī)則項和長度規(guī)則項,獲取該定長記錄中指定位置處字段的字段值;
[0027]步驟6.2:根據配置規(guī)則中的數據類型規(guī)則項和路徑規(guī)則項,將獲取的字段值以相應的數據類型存到ASNl結構樹的相應節(jié)點上。
[0028]進一步,還包括步驟6.2中,每條定長記錄針對配置規(guī)則中的所有規(guī)則項都處理完畢后會生成臨時文件。
[0029]進一步,所述路徑規(guī)則項由tag標簽值拼湊成。。
[0030]進一步,還包括生成運行日志以及生成處理日志。
[0031]進一步,所述ASNl結構樹由一個或一個以上的定長文件轉換生成。
[0032]本發(fā)明的有益效果是:本發(fā)明所述方法利用配置文件,將要生成ASNl數據文件的格式進行靈活配置,使得ASNl數據文件可以被高效的、靈活的組裝,本發(fā)明使用靈活的配置文件,“路徑”在配置文件可以隨時修改增加,“值”的內容也通過配置靈活設置,最大程度上提高了程序的靈活性,去除了程序的業(yè)務相關性,減少了業(yè)務調整時修改程序造成的風險。
【專利附圖】
【附圖說明】
[0033]圖1為本發(fā)明所述一種生成ASNl數據文件的便捷編碼方法流程圖;
[0034]圖2為本發(fā)明所述步驟6的流程圖。
【具體實施方式】
[0035]以下結合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0036]如圖1所示,一種生成ASNl數據文件的便捷編碼方法,包括如下步驟:
[0037]步驟1:編寫一個由若干套配置規(guī)則組成的配置文件,每套配置規(guī)則設有一個文件頭;
[0038]步驟2:將配置文件解析到內存中;
[0039]步驟3:將一個定長文件讀入內存;
[0040]步驟4:將定長文件的文件名與配置文件中所有配置規(guī)則的頭文件進行最長匹配,查找相應的配置規(guī)則,如果找到,則進入步驟5,否則發(fā)出系統(tǒng)告警,結束;
[0041]步驟5:從定長文件中讀取一條定長記錄;
[0042]步驟6:根據配置規(guī)則將從所述定長記錄中獲取的字段值存到ASNl結構樹的相應節(jié)點上;
[0043]步驟7:判斷定長文件中的所有定長記錄是否均已處理完,如果處理完畢,則進入步驟8,否則返回步驟5 ;
[0044]步驟8:對由定長文件生成的ASNl的結構樹進行編碼,生成ASNl數據文件,結束。
[0045]其中,所述配置文件中包括若干套配置規(guī)則,每套配置規(guī)則中包括若干條規(guī)則項。
[0046]其中,所述規(guī)則項包括名稱規(guī)則項、起始位置規(guī)則項、長度規(guī)則項、路徑規(guī)則項和數據類型規(guī)則項;
[0047]所述名稱規(guī)則項標識所要獲取的字段值的字段的名稱;
[0048]所述起始位置規(guī)則項標識所要獲取的字段值在定長記錄中的開始位置;
[0049]所述長度規(guī)則項標識所要獲取的字段值在定長記錄中的長度;
[0050]所述路徑規(guī)則項標識獲取的字段值將要存入ASNl結構樹的路徑;
[0051]所述數據類型規(guī)則項標識獲取的字段值以何種數據類型存入ASNl結構樹。
[0052]其中,步驟6中根據配置規(guī)則將從所述定長記錄中獲取的字段值存到ASNl結構樹的相應節(jié)點上的具體步驟如下:
[0053]步驟6.1:根據配置規(guī)則中的起始位置規(guī)則項和長度規(guī)則項,獲取該定長記錄中指定位置處字段的字段值;
[0054]步驟6.2:根據配置規(guī)則中的數據類型規(guī)則項和路徑規(guī)則項,將獲取的字段值以相應的數據類型存到ASNl結構樹的相應節(jié)點上。
[0055]其中,還包括步驟6.2中,每條定長記錄針對配置規(guī)則中的所有規(guī)則項都處理完畢后會生成臨時文件。
[0056]其中,所述路徑規(guī)則項由tag標簽值拼湊成。。
[0057]其中,還包括生成運行日志以及生成處理日志。
[0058]其中,所述ASNl結構樹由一個或一個以上的定長文件轉換生成。
[0059]下面以電信系統(tǒng)中的話單文件作為定長文件,由原話單文件生成ASN.數據文件為例進行說明。
[0060]以下為采用本發(fā)明所述方法中涉及的配置文件中的其中一套關于話單文件的配置規(guī)則。
[0061]
【權利要求】
1.一種生成ASNl數據文件的便捷編碼方法,其特征在于,包括如下步驟: 步驟1:編寫一個由若干套配置規(guī)則組成的配置文件,每套配置規(guī)則設有一個文件頭; 步驟2:將配置文件解析到內存中; 步驟3:將一個定長文件讀入內存; 步驟4:將定長文件的文件名與配置文件中所有配置規(guī)則的頭文件進行最長匹配,查找相應的配置規(guī)則,如果找到,則進入步驟5,否則發(fā)出系統(tǒng)告警,結束; 步驟5:從定長文件中讀取一條定長記錄; 步驟6:根據配置規(guī)則將從所述定長記錄中獲取的字段值存到ASNl結構樹的相應節(jié)點上; 步驟7:判斷定長文件中的所有定長記錄是否均已處理完,如果處理完畢,則進入步驟8,否則返回步驟5 ; 步驟8:對由定長文件生成的ASNl結構樹進行編碼,生成ASNl數據文件,結束。
2.根據權利要求1所述一種生成ASNl數據文件的便捷編碼方法,其特征在于,所述配置文件中包括若干套配置規(guī)則,每套配置規(guī)則中包括若干條規(guī)則項。
3.根據權利要求2所述一種生成ASNl數據文件的便捷編碼方法,其特征在于,所述規(guī)則項包括名稱規(guī)則項、起始位置規(guī)則項、長度規(guī)則項、路徑規(guī)則項和數據類型規(guī)則項; 所述名稱規(guī)則項標識所要獲取的字段值的字段的名稱; 所述起始位置規(guī)則項標識所要獲取的字段值在定長記錄中的開始位置; 所述長度規(guī)則項標識所要獲取的字段值在定長記錄中的長度; 所述路徑規(guī)則項標識獲取的字段值將要存入ASNl結構樹的路徑; 所述數據類型規(guī)則項標識獲取的字段值以何種數據類型存入ASNl結構樹。
4.根據權利要求1所述一種生成ASNl數據文件的便捷編碼方法,其特征在于,步驟6中根據配置規(guī)則將從所述定長記錄中獲取的字段值存到ASNl結構樹的相應節(jié)點上的具體步驟如下: 步驟6.1:根據配置規(guī)則中的起始位置規(guī)則項和長度規(guī)則項,獲取該定長記錄中指定位置處字段的字段值; 步驟6.2:根據配置規(guī)則中的數據類型規(guī)則項和路徑規(guī)則項,將獲取的字段值以相應的數據類型存到ASNl結構樹的相應節(jié)點上。
5.根據權利要求4所述一種生成ASNl數據文件的便捷編碼方法,其特征在于,還包括步驟6.2中,每條定長記錄針對配置規(guī)則中的所有規(guī)則項都處理完畢后會生成臨時文件。
6.根據權利要求3所述一種生成ASNl數據文件的便捷編碼方法,其特征在于,所述路徑規(guī)則項由tag標簽值拼湊成。
7.根據權利要求1所述一種生成ASNl數據文件的便捷編碼方法,其特征在于,還包括生成運行日志以及生成處理日志。
8.根據權利要求1所述一種生成ASNl數據文件的便捷編碼方法,其特征在于,所述ASNl結構樹由一個或一個以上的定長文件轉換生成。
【文檔編號】G06F9/44GK103473058SQ201310409544
【公開日】2013年12月25日 申請日期:2013年9月10日 優(yōu)先權日:2013年9月10日
【發(fā)明者】楊亞光 申請人:北京思特奇信息技術股份有限公司