CN101650726A - 获取数据的方法 - Google Patents

获取数据的方法 Download PDF

Info

Publication number
CN101650726A
CN101650726A CN200910088033A CN200910088033A CN101650726A CN 101650726 A CN101650726 A CN 101650726A CN 200910088033 A CN200910088033 A CN 200910088033A CN 200910088033 A CN200910088033 A CN 200910088033A CN 101650726 A CN101650726 A CN 101650726A
Authority
CN
China
Prior art keywords
data
byte
version number
data stream
release
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.)
Granted
Application number
CN200910088033A
Other languages
English (en)
Other versions
CN101650726B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Feitian Technologies Co Ltd
Original Assignee
Beijing Feitian Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Feitian Technologies Co Ltd filed Critical Beijing Feitian Technologies Co Ltd
Priority to CN2009100880335A priority Critical patent/CN101650726B/zh
Publication of CN101650726A publication Critical patent/CN101650726A/zh
Application granted granted Critical
Publication of CN101650726B publication Critical patent/CN101650726B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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协议,还可以是用户自定义的协议。
本实施例中具体的判断过程可以为:通过判断获取的通道路径是否具备全部上述特征,如果具备全部上述特征,则获取的通道路径为有效路径;否则,获取的通道路径不是有效路径。
步骤1 06:从通道路径后第一个字节的数据开始,跳过用来描述组织参数数据的区块的固定字节长度的数据后,获取偏移地址后可变长度的数据,得到该数据流中数据体的函数名和类名。
其中,用来描述组织参数数据的区块的固定长度与参数的类型有关。
可变长度的数据根据数据体的具体长度而变,由数据体的长度决定。
数据体的其他数据的获取根据偏移地址及数据体的长度依次获取。
举例说明如下:
参见表1,表1中给出了由计算机截获的数据流的实例,其中数据流中数据的截取为横向依次截取。
表1
 偏移地址  数据体 字符串表示
 0x0000000x0000100x0000200x0000300x0000400x0000500x0000600x0000700x0000800x0000900x0000a00x0000b00x0000c00x0000d00x0000e00x0000f0  2e 4e 45 54 01 00 00 00 00 00 a1 00 00 00 04 0001 01 22 00 00 00 74 63 70 3a 2f 2f 6c 6f 63 616c 68 6f 73 74 3a 38 30 39 30 2f 4d 79 53 65 7276 69 63 65 2e 75 72 69 06 00 01 01 18 00 00 0061 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 63 74 6574 2d 73 74 72 65 61 6d 00 00 00 00 00 00 00 0000 00 00 01 00 00 00 00 00 00 00 15 12 00 00 0012 05 54 65 73 74 33 12 78 4d 79 43 6f 6d 70 616e 79 2e 4d 79 4f 6e 43 61 72 64 41 70 70 2e 4d79 53 65 72 76 69 63 65 2c 20 4d 79 53 65 72 7665 72 5f 73 74 75 62 2c 20 56 65 72 73 69 6f 6e3d 31 2e 30 2e 33 32 30 33 2e 33 32 31 35 35 2c20 43 75 6c 74 75 72 65 3d 6e 65 75 74 72 61 6c2c 20 50 75 62 6c 69 63 4b 65 79 54 6f 6b 65 6e3d 30 32 32 63 34 61 61 36 62 33 39 64 61 36 6434 01 00 00 00 08 03 00 00 00 0b .NET..............″...tcp://localhost:8090/MyService.uri........application/octet-stream..........................Test3.xMyCompany.MyOnCardApp.MyService,MyServer_stub,Version=1.0.3203.32155,Culture=neutral,PublicKeyToken=022c4aa6b39da6d4...............
根据表1中所示的数据流,获取数据的方法可以参见图2,包括:
步骤201:数据偏移起始地址为0x000000,获取其后4字节长度的数据,即16进制的2e 4e 45 54作为数据流头文件的标识。
通过ASCII码表可以得到:这4个字节长度的数据对应的是“.NET”;
步骤202:将计算机中预置的标识“.NET”经过ASCII码转换,得到16进制的ASCII码标识2e 4e 45 54;将步骤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进制的00 00表示操作码;
步骤206:数据流中下一个数据偏移地址为0x000008,取其后6个字节长度的数据,得到16进制的00 00 a1 00 00 00表示数据头文件;
步骤207:数据流中下一个数据偏移地址为0x00000e,取其后2个字节长度的数据,得到16进制的04 00表示头文件的文件类型;
步骤208:数据流中下一个数据偏移地址为0x000010,取其后1个字节长度的数据,得到16进制的01表示验证标识。
步骤209:数据流中下一个数据偏移地址为0x000011,取其后1个字节长度的数据,得到16进制的01表示通道版式;
步骤210:数据流中下一个数据偏移地址为0x000012,取其后4个字节长度的数据,得到16进制的22 00 00 00,或表示为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 (10)

1、一种获取数据的方法,其特征在于,所述方法包括:
获取数据流,所述数据流包括头文件和数据体;
根据所述数据流中的第一个字节连续获取包括所述第一个字节在内的四个字节长度的数据,得到所述数据流头文件的数据流标识;
根据所述数据流标识的下一字节连续获取包含所述数据流标识的下一字节在内的两个字节长度的数据,得到所述数据流头文件的版本号;
根据所述版本号的下一字节连续跳过包含所述版本号的下一字节在内的十二个字节长度的数据,获取包含从所述版本号之后第十三个字节开始的连续四个字节长度的数据,得到所述数据流头文件的通道路径长度;
根据所述通道路径长度的下一个偏移地址,获取所述通道路径长度所表示长度的通道路径;
由所述通道路径的下一字节数据开始,跳过用来描述组织参数数据的区块的固定字节长度的数据,获取所述数据流中数据体的数据。
2、如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述版本号的下一字节连续获取包含所述版本号的下一字节在内的两个字节长度的数据,得到所述数据流的操作码;
和/或
根据所述版本号的下一字节连续跳过包含所述版本号的下一字节在内的两个字节长度的数据,获取包含所述版本号后第三个字节开始的连续六个字节长度的数据流头文件;
和/或
根据所述版本号的下一字节连续跳过包含所述版本号的下一字节在内的八个字节长度的数据,获取包含所述版本号后第九个字节开始的连续两个字节长度的数据流头文件类型;
和/或
根据所述版本号的下一字节连续跳过包含所述版本号的下一字节在内的十个字节长度的数据,获取所述版本号后第十一个字节的数据流验证标识;
和/或
根据所述版本号的下一字节连续跳过包含所述版本号的下一字节在内的十一个字节长度的数据,获取所述版本号后第十二个字节的数据流通道版式。
3、如权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述数据流标识与计算机中预置的标识是否一致;
当判断结果为一致时,继续获得所述数据流头文件的版本号;
当判断结果为不一致时,结束操作。
4、如权利要求3所述的方法,其特征在于,所述判断方法具体为:
将所述计算机中预置的标识经ASCII码转换,得到16进制的ASCII码标识;
将所述数据流标识与所述16进制的ASCII码标识相比较;
如果相同,则判断结果为一致;
如果不同,则判断结果为不一致。
5、如权利要求1所述的方法,其特征在于,所述版本号包括大版本号和小版本号;
包含所述数据流标识的下一字节在内的连续两个字节的数据,第一个字节的数据为大版本号,第二个字节的数据为小版本号。
6、如权利要求5所述的方法,其特征在于,方法还包括:
判断所述大版本号是否与计算机中预置的大版本号一致;
判断所述小版本号是否与所述计算机中预置的小版本号一致;
当判断结果为均一致时,继续获得所述数据流头文件的通道路径长度;
当判断结果中至少一个为不一致时,结束操作。
7、如权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述通道路径是否为有效路径;
当所述判断结果为是时,跳过用来描述组织参数数据的区块的固定字节长度的数据,继续获取所述数据流中数据体的函数名和类名;
当所述判断结果为否时,结束操作。
8、如权利要求7所述的方法,其特征在于,所述判断方法具体为:
判断所述通道路径是否满足以下特征:
协议+“://”开头,且“.uri”为后缀;
如果满足,则判断结果为是;
如果不满足,则判断结果为否。
9、如权利要求8所述的方法,其特征在于,所述协议具体为TCP或APDU。
10、如权利要求1所述的方法,其特征在于,所述数据体的数据具体包括:数据函数名、类名或程序集。
CN2009100880335A 2009-06-30 2009-06-30 获取数据的方法 Active CN101650726B (zh)

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 true CN101650726A (zh) 2010-02-17
CN101650726B CN101650726B (zh) 2012-02-15

Family

ID=41672965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100880335A Active CN101650726B (zh) 2009-06-30 2009-06-30 获取数据的方法

Country Status (1)

Country Link
CN (1) CN101650726B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108008967A (zh) * 2017-12-22 2018-05-08 浪潮金融信息技术有限公司 应用程序的版本控制方法及装置、计算机可读存储介质、终端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1260935C (zh) * 2001-10-11 2006-06-21 旺宏电子股份有限公司 异步传输用接收器的传输汇聚子层电路及其操作方法
CN1841976B (zh) * 2005-03-29 2010-04-28 华为技术有限公司 一种传输实时并行数据流的方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108008967A (zh) * 2017-12-22 2018-05-08 浪潮金融信息技术有限公司 应用程序的版本控制方法及装置、计算机可读存储介质、终端
CN108008967B (zh) * 2017-12-22 2021-05-04 浪潮金融信息技术有限公司 应用程序的版本控制方法及装置、计算机可读存储介质、终端

Also Published As

Publication number Publication date
CN101650726B (zh) 2012-02-15

Similar Documents

Publication Publication Date Title
CN104360865B (zh) 一种序列化方法、反序列化方法及相关设备
CN102737065A (zh) 数据的获取方法和装置
CN103617508A (zh) 可配置的业务规则插件扩展装置和业务规则插件扩展方法
CN102013056A (zh) 可组态的电力报表管理系统及其操作方法
CN101192194A (zh) 基于测试用例数据库系统的测试用例设计方法
CN108984744A (zh) 一种非主链区块自增长方法
CN107909258A (zh) 一种电能表台区识别方法及系统
CN107797823A (zh) 业务规则管理方法、装置、存储介质和计算机设备
CN101770367A (zh) .net文件压缩方法和装置
CN111008183B (zh) 一种用于业务风控日志数据的存储方法及系统
CN108241642A (zh) 文件解析方法和装置
CN102521356A (zh) 基于确定有限状态自动机的正则表达式匹配设备和方法
CN110191156B (zh) 一种基于区块链的数据处理方法及装置
CN106598885B (zh) 一种可配置的多端口通用数据桥接系统的工作方法
CN107566344A (zh) 一种can信号解析方法及系统
CN102486772A (zh) 一种数据的导出方法及装置
CN102387255B (zh) 一种利用智能卡处理第三方扩展业务数据的方法与装置
CN205318553U (zh) 数据处理装置和系统以及打印机
CN106506178A (zh) 一种用于为主播精准引流的方法和系统
CN105844315A (zh) 一种样本源数据信息管理方法和装置
CN101650726A (zh) 获取数据的方法
CN105138936A (zh) 一种育种材料田间布局统计系统及方法
CN106897434A (zh) 一种数据导入方法、装置及系统
CN104753891A (zh) 一种xml报文解析方法及装置
CN104216872A (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