CN101650726B - 获取数据的方法 - Google Patents
获取数据的方法 Download PDFInfo
- Publication number
- CN101650726B CN101650726B CN2009100880335A CN200910088033A CN101650726B CN 101650726 B CN101650726 B CN 101650726B CN 2009100880335 A CN2009100880335 A CN 2009100880335A CN 200910088033 A CN200910088033 A CN 200910088033A CN 101650726 B CN101650726 B CN 101650726B
- Authority
- CN
- China
- Prior art keywords
- release
- data
- byte
- minor
- major
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000000052 comparative effect Effects 0.000 claims description 4
- 241001269238 Data Species 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种获取数据的方法,属于数据处理领域。方法包括:获取数据流,数据流包括头文件和数据体;由所述数据流中的第一个字节连续获取包括所述第一个字节在内的四个字节长度的数据,得到所述数据流头文件的数据流标识;根据所述数据流标识的下一字节连续获取包含所述下一字节的两个字节长度的数据,得到所述数据流头文件的版本号;根据所述版本号的下一字节连续跳过包含所述版本号的下一字节的十二个字节长度的数据,获取包含所述版本号后第十三个字节的四个字节长度的数据,得到所述数据流头文件的通道路径长度;并由所述通道路径长度的下一个偏移,获取所述通道路径长度所表示长度的通道路径;并进一步,获取所述数据流中数据体的数据。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种获取数据的方法。
背景技术
数据格式(Data Format)是数据保存在文件或记录中的编排格式,可为数值、字符或二进制数等形式。由数据类型及数据长度来描述。数据格式的确定应满足一定条件:①保证记录所需要的全部信息;②提高存贮效率,保证存贮空间的充分利用;③格式标准化,保证有关数据处理系统间数据的交换。根据数据记录长度的特点,数据格式一般分为定长格式和变长格式。前者文件中记录具有相同的长度,后者长度由记录值长短确定。
现有技术中数据格式的种类繁多,从不同数据格式的数据中获取数据的方法也很多,而正是因为这些种类繁多的方法使得获取数据的效率低下,不能满足用户的需求。
发明内容
为了提高获取数据的效率,本发明提供了一种获取数据的方法。所述技术方案如下:
获取数据流,所述数据流包括头文件和数据体;
根据所述数据流中的偏移起始地址连续获取所述数据流中包括第一个字节在内的四个字节长度的数据,得到所述数据流头文件的数据流标识;
将获得的数据流标识与计算机中预置的数据流标识相比较,如果一致,则获取数据流头文件的大版本号及小版本号、通道路径长度及该通道路径长度所表示长度的通道路径,如果不一致,则结束操作;所述数据流头文件的大版本号及小版本号从所述数据流标识的下一字节连续获取包含所述数据流标识的下一字节在内的两个字节长度的数据而得到;所述数据流头文件的通道路径长度从所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的十二个字节长度的数据,获取包含从所述大版本号和小版本号之后第十三个字节开始的连续四个字节长度的数据而得到;所述通道路径长度所表示长度的通道路径根据所述通道路径长度的下一个偏移地址获取;
在获取数据流头文件的大版本号及小版本号、通道路径长度及该通道路径长度所表示长度的通道路径之后,将获得的大版本号和小版本号分别与计算机中预置的大版本号和小版本号相比较,如果比较结果均为一致,则判断获取的通道路径是否为有效路径,如果比较结果中至少一个为不一致,则结束操作;当判断获取的通道路径是有效路径时,则由所述通道路径的下一字节数据开始,跳过用来描述组织参数数据的区块的固定字节长度的数据,获取所述数据流中数据体的数据,当判断获取的通道路径不是有效路径时结束操作。
所述方法还包括:
根据所述大版本号和小版本号的下一字节连续获取包含所述大版本号和小版本号的下一字节在内的两个字节长度的数据,得到所述数据流的操作码;
和/或
根据所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的两个字节长度的数据,获取包含所述大版本号和小版本号后第三个字节开始的,连续的六个字节长度的数据流头文件;
和/或
根据所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的八个字节长度的数据,获取包含所述大版本号和小版本号后第九个字节开始的连续两个字节长度的数据流头文件类型;
和/或
根据所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的十个字节长度的数据,获取所述大版本号和小版本号后第十一个字节的数据流验证标识;
和/或
根据所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的十一个字节长度的数据,获取所述大版本号和小版本号后第十二个字节的数据流通道版式。
所述将获得的数据流标识与计算机中预置的数据流标识相比较,具体为:
将所述计算机中预置的标识经ASCII码转换,得到16进制的ASCII码标识;
将所述数据流标识与所述16进制的ASCII码标识相比较;
如果相同,则判断结果为一致;
如果不同,则判断结果为不一致。
所述大版本号和小版本号,具体包括:
包含所述数据流标识的下一字节在内的连续两个字节的数据,第一个字节的数据为大版本号,第二个字节的数据为小版本号。
所述判断获取的通道路径是否为有效路径,具体包括:
当所述判断结果为是时,跳过用来描述组织参数数据的区块的固定字节长度的数据,继续获取所述数据流中数据体的函数名和类名;
当所述判断结果为否时,结束操作。
所述判断方法具体为:
判断所述通道路径是否满足以下特征:“协议://”开头,且“.uri”为后缀;
如果满足,则判断结果为是;
如果不满足,则判断结果为否。
所述协议具体为TCP或APDU。
所述数据体的数据具体包括:数据函数名、类名或程序集。
本发明提供的技术方案带来的有益效果是:
有效提高了获取数据的效率,并可以在无需知道数据流的源代码的情况下获取数据。
附图说明
图1是本发明实施例1中提供的获取数据的方法流程图;
图2是本发明实施例1中提供的获取数据的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
数据流的头文件根据数据流中获取数据的需要,除了包括数据流标识、版本号、通道路径长度、通道路径之外,还可以包括操作码、文件类型、验证标识、通道版式中的任意一个或多个。本实施例以数据流头文件由数据流标识、版本号、操作码、文件类型、验证标识、通道版式、通道路径长度以及通道路径组成。
实施例1
本实施例提供了一种获取数据的方法,通过将16进制和ASCII码表进行有效结合从数据流中获取数据。参见图1,该方法包括:
步骤101:获取数据流,获得该数据流头文件中的数据流标识;
其中,可以由计算机中获取数据流。
获得该数据流头文件中的数据流标识的方法具体为:根据数据流中的偏移起始地址,连续获取该数据流中包括第1字节在内的4个字节长度的数据,得到该数据流头文件中的数据流标识。
步骤102:将步骤101中获得的数据流标识与计算机中预置的数据流标识相比较;
如果一致,则执行步骤103;
如果不一致,则结束操作。
其中,计算机中会存储标识,该标识首先要经过ASCII码转换,得到16进制的ASCII码标识,再将步骤101中获得的数据流标识与该16进制的ASCII码标识进行比较。
步骤103:获取该数据流头文件的大版本号及小版本号、通道路径长度、及该通道路径长度所表示长度的通道路径;
其中,由步骤101中数据流标识的下一字节数据开始,获取2个字节数据,可以先后得到该数据流头文件的大版本号及小版本号。
然后,从该数据流头文件的大版本号及小版本号的后一个字节开始连续跳过12个字节的数据后,获取从第13个字节开始的连续4个字节的数据,得到该数据流头文件的通道路径长度;
根据通道路径长度的下一个偏移地址,获取该通道路径长度所表示长度的通道路径。这里需要说明的是,通道路径的长度是可变的,当遇到“00”时结束获取。
这里需要说明的是,操作码可以由数据流的大、小版本号之后的2个字节数据获取;头文件可以由操作码之后的6个字节数据获取;文件类型可以由数据流的头文件之后的2个字节数据获取;验证标识可以由数据流的文件类型之后的1个字节数据获取;通道版式可以由数据流的验证标识之后的1个字节数据获取。
步骤104:将步骤103中获得的大版本号及小版本号分别与计算机中预置的大版本号及小版本号相比较;
如果一致,则执行步骤105;
如果不一致,则结束操作。
其中,计算机中会预置16进制的大版本号及小版本号。
步骤105:判断获取的通道路径是否为有效路径;
如果是,执行步骤106;
如果否,结束操作。
其中,计算机中预置的有效路径具备以下特征:协议+“://”开头,“.uri”为后缀,例如“协议://.............uri”。这里协议具体可以为TCP或APDU协议,还可以是用户自定义的协议。
本实施例中具体的判断过程可以为:通过判断获取的通道路径是否具备全部上述特征,如果具备全部上述特征,则获取的通道路径为有效路径;否则,获取的通道路径不是有效路径。
步骤106:从通道路径后第一个字节的数据开始,跳过用来描述组织参数数据的区块的固定字节长度的数据后,获取偏移地址后可变长度的数据,得到该数据流中数据体的函数名和类名。
其中,用来描述组织参数数据的区块的固定长度与参数的类型有关。
可变长度的数据根据数据体的具体长度而变,由数据体的长度决定。
数据体的其他数据的获取根据偏移地址及数据体的长度依次获取。
举例说明如下:
参见表1,表1中给出了由计算机截获的数据流的实例,其中数据流中数据的截取为横向依次截取。
表1
根据表1中所示的数据流,获取数据的方法可以参见图2,包括:
步骤201:数据偏移起始地址为0x000000,获取其后4字节长度的数据,即16进制的2e 4e 4554作为数据流头文件的标识。
通过ASCII码表可以得到:这4个字节长度的数据对应的是“.NET”;
步骤202:将计算机中预置的标识“.NET”经过ASCII码转换,得到16进制的ASCII码标识2e 4e 4554;将步骤201中获得的16进制的标识与步骤202中转换得到的标识相比较,可知这两个标识是一致的,执行步骤203;
步骤203:数据流中下一个数据偏移地址为0x000004,取其后1个字节长度的数据,16进制的01表示数据流头文件的大版本号;下一个数据偏移地址为0x000005,取其后1个字节长度的数据,16进制的00表示数据流头文件的小版本号。
步骤204:验证版本号;
比较计算机中预置的大版本号、小版本号的16进制的表示(本实施例计算机中预置的大版本号、小版本号16进制表示为01、00)是否与步骤203中得到的大版本号01、小版本号00相一致,从本实施例中可知一致,执行步骤205。
步骤205:数据流中下一个数据偏移地址为0x000006,取其后2个字节长度的数据,得到16进制的0000表示操作码;
步骤206:数据流中下一个数据偏移地址为0x000008,取其后6个字节长度的数据,得到16进制的0000a1000000表示数据头文件;
步骤207:数据流中下一个数据偏移地址为0x00000e,取其后2个字节长度的数据,得到16进制的0400表示头文件的文件类型;
步骤208:数据流中下一个数据偏移地址为0x000010,取其后1个字节长度的数据,得到16进制的01表示验证标识。
步骤209:数据流中下一个数据偏移地址为0x000011,取其后1个字节长度的数据,得到16进制的01表示通道版式;
步骤210:数据流中下一个数据偏移地址为0x000012,取其后4个字节长度的数据,得到16进制的22000000,或表示为0x22,表示通道路径长度;
步骤211:数据流中下一个数据偏移地址为0x000016,取其后x(表示可变,遇00结束)个字节长度的数据,得到16进制的74 63 70 3a 2f 2f 6c 6f 63 61 6c 686f 73 74 3a 38 30 39 30 2f 4d 79 53 65 72 76 69 63 65 2e 75 72 69 06表示通道路径;
通过ASCII码表可知,该通道路径代表的是:
“tcp://localhost:8090/MyService.uri”
步骤212:判断步骤211中获得的通道路径是否为有效路径;
即是否具备协议+“://”开头,“.uri”为后缀的特征,其中协议可以是TCP或APDU还可以是用户自定义的协议,由上述可知,步骤211中获得的通道路径为有效路径,执行步骤213;
步骤213:数据流中下一个数据偏移地址为0x00003a,跳过固定字节长度数据(本实施例中为56个字节),此时数据流中的数据体偏移起始地址为0x000072,取其后x(表示可变,遇00结束)个字节长度的数据,得到16进制的54 65 73 74 33 12 78 4d 79 43 6f 6d 70 61 6e 79 2e 4d 79 4f 6e 43 61 72 64 41 7070 2e 4d 79 53 65 72 76 69 63 65 2c 20 4d 79 53 65 72 76 65 72 5f 73 74 75 62 2c 2056 65 72 73 69 6f 6e 3d 31 2e 30 2e 33 32 30 33 2e 33 32 31 35 35 2c 20 43 75 6c 7475 72 65 3d 6e 65 75 74 72 61 6c 2c 20 50 75 62 6c 69 63 4b 65 79 54 6f 6b 65 6e 3d30 32 32 63 34 61 61 36 62 33 39 64 61 36 64 34 01,通过ASCII码表可知:
“Test3.xMyCompany.MyOnCardApp.MyService”,表示函数名+类名。
其他数据体中的数据的获取与上述实施例中类似,在此不做赘述。
本发明实施例提供了一种获取数据的方法,通过对数据流本身的分析,无须知道该数据流的源代码就可以从数据流中获得数据,不论数据流的数据格式的种类,都可以使用本发明提供的获取数据的方法,提高获取数据的效率。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种获取数据的方法,其特征在于,所述方法包括:
获取数据流,所述数据流包括头文件和数据体;
根据所述数据流中的偏移起始地址连续获取所述数据流中包括第一个字节在内的四个字节长度的数据,得到所述数据流头文件的数据流标识;
将获得的数据流标识与计算机中预置的数据流标识相比较,如果一致,则获取数据流头文件的大版本号及小版本号、通道路径长度及该通道路径长度所表示长度的通道路径,如果不一致,则结束操作;所述数据流头文件的大版本号及小版本号从所述数据流标识的下一字节连续获取包含所述数据流标识的下一字节在内的两个字节长度的数据而得到;所述数据流头文件的通道路径长度从所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的十二个字节长度的数据,获取包含从所述大版本号和小版本号之后第十三个字节开始的连续四个字节长度的数据而得到;所述通道路径长度所表示长度的通道路径根据所述通道路径长度的下一个偏移地址获取;
在获取数据流头文件的大版本号及小版本号、通道路径长度及该通道路径长度所表示长度的通道路径之后,将获得的大版本号和小版本号分别与计算机中预置的大版本号和小版本号相比较,如果比较结果均为一致,则判断获取的通道路径是否为有效路径,如果比较结果中至少一个为不一致,则结束操作;当判断获取的通道路径是有效路径时,则由所述通道路径的下一字节数据开始,跳过用来描述组织参数数据的区块的固定字节长度的数据,获取所述数据流中数据体的数据,当判断获取的通道路径不是有效路径时结束操作。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述大版本号和小版本号的下一字节连续获取包含所述大版本号和小版本号的下一字节在内的两个字节长度的数据,得到所述数据流的操作码;
和/或
根据所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的两个字节长度的数据,获取包含所述大版本号和小版本号后第三个字节开始的连续六个字节长度的数据流头文件;
和/或
根据所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的八个字节长度的数据,获取包含所述大版本号和小版本号后第九个字节开始的连续两个字节长度的数据流头文件类型;
和/或
根据所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的十个字节长度的数据,获取所述大版本号和小版本号后第十一个字节的数据流验证标识;
和/或
根据所述大版本号和小版本号的下一字节连续跳过包含所述大版本号和小版本号的下一字节在内的十一个字节长度的数据,获取所述大版本号和小版本号后第十二个字节的数据流通道版式。
3.如权利要求1所述的方法,其特征在于,所述将获得的数据流标识与计算机中预置的数据流标识相比较,具体为:
将所述计算机中预置的标识经ASCII码转换,得到16进制的ASCII码标识;
将所述数据流标识与所述16进制的ASCII码标识相比较;
如果相同,则判断结果为一致;
如果不同,则判断结果为不一致。
4.如权利要求1所述的方法,其特征在于,所述大版本号和小版本号,具体包括:
包含所述数据流标识的下一字节在内的连续两个字节的数据,第一个字节的数据为大版本号,第二个字节的数据为小版本号。
5.如权利要求1所述的方法,所述判断获取的通道路径是否为有效路径,具体包括:
当所述判断结果为是时,跳过用来描述组织参数数据的区块的固定字节长度的数据,继续获取所述数据流中数据体的函数名和类名;
当所述判断结果为否时,结束操作。
6.如权利要求5所述的方法,其特征在于,所述判断方法具体为:
判断所述通道路径是否满足以下特征:
“协议://”开头,且“.uri”为后缀;
如果满足,则判断结果为是;
如果不满足,则判断结果为否。
7.如权利要求6所述的方法,其特征在于,所述协议具体为TCP或APDU。
8.如权利要求1所述的方法,其特征在于,所述数据体的数据具体包括:数据函数名、类名或程序集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100880335A CN101650726B (zh) | 2009-06-30 | 2009-06-30 | 获取数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100880335A CN101650726B (zh) | 2009-06-30 | 2009-06-30 | 获取数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101650726A CN101650726A (zh) | 2010-02-17 |
CN101650726B true CN101650726B (zh) | 2012-02-15 |
Family
ID=41672965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100880335A Expired - Fee Related CN101650726B (zh) | 2009-06-30 | 2009-06-30 | 获取数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101650726B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108008967B (zh) * | 2017-12-22 | 2021-05-04 | 浪潮金融信息技术有限公司 | 应用程序的版本控制方法及装置、计算机可读存储介质、终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1412998A (zh) * | 2001-10-11 | 2003-04-23 | 旺宏电子股份有限公司 | 异步传输用接收器的传输会聚子层电路及其操作方法 |
CN1841976A (zh) * | 2005-03-29 | 2006-10-04 | 华为技术有限公司 | 一种传输实时并行数据流的方法及系统 |
-
2009
- 2009-06-30 CN CN2009100880335A patent/CN101650726B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1412998A (zh) * | 2001-10-11 | 2003-04-23 | 旺宏电子股份有限公司 | 异步传输用接收器的传输会聚子层电路及其操作方法 |
CN1841976A (zh) * | 2005-03-29 | 2006-10-04 | 华为技术有限公司 | 一种传输实时并行数据流的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101650726A (zh) | 2010-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992026B (zh) | 一种基于labveiw的解析dbc分析报文的方法 | |
CN107092625A (zh) | 数据配置方法、数据处理方法及装置 | |
EP1785841A3 (en) | Database for multiple implementation of http to obtain information from devices | |
CN102737065A (zh) | 数据的获取方法和装置 | |
CN108664665A (zh) | 数据格式转化方法、装置、设备及可读存储介质 | |
CN106815733A (zh) | 数据处理方法、装置和系统以及打印机 | |
CN105681199B (zh) | 一种车载总线中报文数据的处理方法及装置 | |
CN104999813A (zh) | 打印设备的控制方法、控制装置和打印设备 | |
CN102591787A (zh) | Java卡的数据处理方法及装置 | |
CN110968592B (zh) | 元数据采集方法、装置、计算机设备及计算机可读存储介质 | |
CN108429764A (zh) | 一种基于私有协议的数据传输和解析的方法 | |
CN101650726B (zh) | 获取数据的方法 | |
CN102387255B (zh) | 一种利用智能卡处理第三方扩展业务数据的方法与装置 | |
CN104517062A (zh) | 一种基于文档对象模型的分权限文档管理的方法及装置 | |
CN104753891A (zh) | 一种xml报文解析方法及装置 | |
CN101894098A (zh) | 一种内嵌字体数据处理方法及装置 | |
CN109144853B (zh) | 一种软件定义无线电SoC芯片调试系统 | |
CN102055549B (zh) | 一种长期演进系统中的速率匹配装置及方法 | |
CN105955680A (zh) | 一种支持动态附加扩展信息的单据打印方法 | |
CN108073709B (zh) | 一种数据记录的操作方法、装置、设备和存储介质 | |
CN109660602A (zh) | 数据增量传输方法及装置 | |
CN108874994A (zh) | 一种分块读取数据的方法、装置及计算机存储介质 | |
CN104216872A (zh) | 一种识别网络小说中垃圾章节的方法及装置 | |
CN105653207B (zh) | 一种闪存接口信息的实时解析方法和系统 | |
JP2003330360A5 (zh) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120215 |
|
CF01 | Termination of patent right due to non-payment of annual fee |