CN116226047A - 一种快速读取gzip压缩的stdf文件MIR信息的方法及装置 - Google Patents
一种快速读取gzip压缩的stdf文件MIR信息的方法及装置 Download PDFInfo
- Publication number
- CN116226047A CN116226047A CN202211609060.4A CN202211609060A CN116226047A CN 116226047 A CN116226047 A CN 116226047A CN 202211609060 A CN202211609060 A CN 202211609060A CN 116226047 A CN116226047 A CN 116226047A
- Authority
- CN
- China
- Prior art keywords
- file
- compressed
- mir
- bytes
- record
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及数据处理技术领域,公开了一种快速读取gzip压缩的stdf文件MIR信息的方法及装置,该方法包括:先筛选出stdf文件列表,然后读取前面部分字节,并判断是否为合法的压缩文件,然后对合法的压缩文件进行解压并判断解压后的文件是否为非法文件,若不是非法文件,则识别出MIR记录并解析出详细内容,最后根据详细内容判断是否是需要完整解析的目标文件,本申请只需读取文件部分信息,然后根据特征码识别压缩算法,在内存中解压缩,并快速的解析文件头部的MIR信息,从而获取程序版本号,并把原来的识别耗时,从分钟级别降低到毫秒级,资源占用也大大的降低,从而能够有效的提高处理效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其是一种快速读取gzip压缩的stdf文件MIR信息的方法及装置。
背景技术
半导体测试在良率监控时,一般只监测PTR(参数测试记录)和FTR(功能测试记录)记录,不会监测DTR(数据日志文本记录),因为它仅仅记录一些日志信息。但有时人为错误和非标操作,把关键的PTR或FTR数据写入到DTR记录中,从而导致RTM系统(实时监控系统)无法监测产品的良率。
本发明因客户的测试程序把FTR的数据写在DTR中,导致RTM系统无法监测。但只有版本号为8的程序产生的数据会受到此影响,最终这些数据未被解析直接压缩后存储在某处。因此需要开发一个软件识别出哪些是版本号为8的程序生成的STDF文件(程序版本信息保存在MIR记录中),然后把这些文件转换为正常的数据结构(把DTR中的数据解析后写入FTR)再解析并导入到系统,做离线的良率分析。由于stdf文件非常的多,就会存在两个问题:
1.解析前必须解压缩全部文件,而300M的文件解压后就是3G,巡检的效率非常低,且非常的占用资源;
2.开源的解析库默认需要把整个文件解析完之后才返回解析结果,导致解析过程非常漫长且占用内存。
而现有的技术方案为:人工筛选出版本为8的程序生成的stdf文件,然后手动解压缩,再根据客户提供的转换规则,把数据导入到系统中。人工筛选不仅工作量大效率低,而且可能出现遗漏。
发明内容
本申请的目的在于克服现有技术不足之处,提供一种快速读取gzip压缩的stdf文件MIR信息的方法及装置。
第一方面,提供了一种快速读取gzip压缩的stdf文件MIR信息的方法,包括:
根据通配符初步筛选出经过压缩的stdf文件列表;
读取压缩的stdf文件的前N个字节,其中,N为1024的正整数倍;
根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件;
响应于压缩的stdf文件是合法的,则根据gzip的算法对前N个字节进行解压缩;
根据解压后文件的前6个字节判断是否是非法文件;
响应于解压后的文件不是非法文件,则从解压后文件中识别出MIR记录;
按长度读取完整的MIR记录字节流,并跳过前4个字节解析MIR记录的详细内容;
根据解析结果判断当前MIR记录是否是需要完整解析的目标文件。
进一步的,所述通配符为*.stdf.gz或*.gz中的任意一种。
进一步的,读取压缩的stef文件的前2048个字节,若未读取到完整的MIR记录,则读取前2048*n个字节,其中,n为读取压缩的stdf文件的次数,直至读取到完整的MIR记录停止循环。
进一步的,根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件,包括:
读取压缩的stdf文件中文件头的前两个字节;
判断压缩的stdf文件中文件头的前两个字节是否为31和139;
响应于压缩的stdf文件中文件头的前两个字节是31和139,则判断当前压缩的stdf文件是合法的压缩文件;
响应于压缩的stdf文件中文件头的前两个字节不是31和139,则判断当前压缩的stdf文件不是合法的压缩文件。
进一步的,根据解压后文件的前6个字节判断是否是非法文件,包括:
根据解压后文件的第五个字节判断字节序是高位还是低位,若第五个字节小于2说明,则判断字节序为高位,并从第二个字节读取FAR的长度,若第五个字节大于等于2,则判断字节序为低位,并从第一个字节读取FAR的长度;
响应于FAR的长度不是2,则判断解压后文件为非法文件;
响应于FAR的长度是2,则判断第三个字节和第四个字节是否为0和10,若第三个字节不是0或第四个字节不是10,则判断解压后文件为非法文件,若第三个字节是0且第四个字节是10,则判断解压后文件不是非法文件。
进一步的,从解压后文件中识别出MIR记录,包括:
从解压后文件的第七个字节开始读取四个字节,其中,在读取的四个字节中:前两个字节是记录的总长度,第三个字节记录的是记录的主类型,第四个字节记录的是记录的子类型;
响应于记录的主类型为1,且子类型为10,则判断当前记录为MIR记录;
响应于记录的主类型不是1,或子类型不是10,则判断当前记录不是MIR记录,并跳过当前记录往后读取四个字节继续识别MIR记录,直至识别出MIR记录。
进一步的,根据解析结果判断当前MIR记录是否是需要完整解析的目标文件,包括:
根据EXEC_TYP判断解析结果的字符串是否包含8.的关键字,FAMLY_ID是否为目标客户;
响应于解析结果的字符串包含8.的关键字,且FAMLY_ID为目标客户,则当前MIR记录为需要解析的目标文件。
第二方面,提供了一种快速读取gzip压缩的stdf文件MIR信息的装置,包括:
初步筛选模块,用于根据通配符初步筛选出经过压缩的stdf文件列表;
读取模块,用于读取压缩的stdf文件的前N个字节,其中,N为1024的正整数倍;
第一判断模块,用于根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件;
解压缩模块,用于响应于压缩的stdf文件是合法的,则根据gzip的算法对前N个字节进行解压缩;
第二判断模块,用于根据解压后文件的前6个字节判断是否是非法文件;
识别模块,用于响应于解压后的文件不是非法文件,则从解压后文件中识别出MIR记录;
解析模块,用于按长度读取完整的MIR记录字节流,并跳过前4个字节解析MIR记录的详细内容;
第三判断模块,用于根据解析结果判断当前MIR记录是否是需要完整解析的目标文件。
第三方面,提供了一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如第一方面中的任意一种实现方式中方法的步骤。
第四方面,提供了一种电子设备,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中的任意一种实现方式中的方法的步骤。
本申请具有如下有益效果:本申请只需读取文件部分信息,然后根据特征码识别压缩算法,在内存中解压缩,并快速的解析文件头部的MIR信息,从而获取程序版本号,并把原来的识别耗时,从分钟级别降低到毫秒级,资源占用也大大的降低,从而能够有效的提高处理效率,而且可以针对特定业务需求做出快速的微调,且在存储和计算上也不需要花费太多的投入,一般的服务器就可以承受。
附图说明
构成本申请的一部分的附图用于来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的快速读取gzip压缩的stdf文件MIR信息的方法的流程图;
图2是本申请实施例一的快速读取gzip压缩的stdf文件MIR信息的方法的流程图;
图3是本申请实施例一的快速读取gzip压缩的stdf文件MIR信息的方法的流程图;
图4是本申请实施例二的快速读取gzip压缩的stdf文件MIR信息的装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
本申请实施例一所涉及的一种快速读取gzip压缩的stdf文件MIR信息的方法,包括:根据通配符初步筛选出经过压缩的stdf文件列表;读取压缩的stdf文件的前N个字节,其中,N为1024的正整数倍;根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件;响应于压缩的stdf文件是合法的,则根据gzip的算法对前N个字节进行解压缩;根据解压后文件的前6个字节判断是否是非法文件;响应于解压后的文件不是非法文件,则从解压后文件中识别出MIR记录;按长度读取完整的MIR记录字节流,并跳过前4个字节解析MIR记录的详细内容;根据解析结果判断当前MIR记录是否是需要完整解析的目标文件,本申请的技术方案只需读取文件部分信息,然后根据特征码识别压缩算法,在内存中解压缩,并快速的解析文件头部的MIR信息,从而获取程序版本号,并把原来的识别耗时,从分钟级别降低到毫秒级,资源占用也大大的降低,从而能够有效的提高处理效率,而且可以针对特定业务需求做出快速的微调,且在存储和计算上也不需要花费太多的投入,一般的服务器就可以承受。
具体的,图1示出了申请实施例一中的快速读取gzip压缩的stdf文件MIR信息的方法的流程图,包括:
S101、根据通配符初步筛选出经过压缩的stdf文件列表;
其中,通配符优选为“*.stdf.gz”,gzip压缩后的文件后缀是“.gz”,这里使用“*.stdf.gz”作为通配符是一种约定,通过保留原始文件的后缀,可以快速分辨原始文件类型,当然,通配符也可以选用“*.gz”,这样筛选出的文件可以大概率是经过zgip的压缩文件,但不能保证是stdf,相对来说会降低执行效率。
S102、读取压缩的stdf文件的前N个字节,其中,N为1024的正整数倍,这是从底层存储逻辑考虑,一个数据块一般是1024,否则影响读取效率,如果文件的字节数小于N则整个读取文件;
示例性的,N取2048,即读取压缩的stef文件的前2048个字节,而此处使用2048是结合stdf文件结构和实际压缩率综合考虑,太少会增加读取不足的概率,太多影响性能,一般gzip的压缩率在3-10倍左右,相当于读取了原始文件6144-20480字节,这样大概率可以保证把MIR记录内容包含,减少因为读取长度不足而需要二次读取的概率,为什么说大概率,这得从stdf的文件结构说起,一个最简单的stdf文件至少有四条记录,按照顺序一次为FAR->MIR->PCR->MRR,其中FAR的长度固定,共6个字节,MIR根据写入内容虽然长度会变,但最长不会超过7669个字节,唯一可能造成读取不足可能是ATR记录,它是一种可选记录,位于FAR和MIR之间,且可能出现多条,每条长度最长不超过263个字节,若读取压缩的stdf文件的前2048个字节并未读取到完整的MIR记录,则读取前2048*n个字节,其中,n为读取压缩的stdf文件的次数,直至读取到完整的MIR记录停止循环,例如:初次读取2048个字节时发现长度不够(即未读取到完整的MIR记录),第二次则会读取2048*2=4096个字节,如果仍然未读取到完整的MIR记录,第三次则会读取2048*3=6144个字节,以此类推直到读取完整的MIR记录,如图2所示。
S103、根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件;
具体的,根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件,包括:
S301、读取压缩的stdf文件中文件头的前两个字节;
S302、判断压缩的stdf文件中文件头的前两个字节是否为31和139;
S303、响应于压缩的stdf文件中文件头的前两个字节是31和139,则判断当前压缩的stdf文件是合法的压缩文件;
S304、响应于压缩的stdf文件中文件头的前两个字节不是31和139,则判断当前压缩的stdf文件不是合法的压缩文件。
需要说明的是,gzip压缩文件的前两个字节分别为31和139,所以只需读取两个字节即可判断是否是合法的gzip压缩文件。
S104、响应于压缩的stdf文件是合法的,则根据gzip的算法对前N个字节进行解压缩;
需要说明的是,一般情况下,解压的文件不完整是无法解压,但如果是从头部开始的一段连续的文件流,gzip压缩的文件是可以解压缩,这是gzip压缩的一个特性。
S105、根据解压后文件的前6个字节判断是否是非法文件;
具体的,根据解压后文件的前6个字节判断是否是非法文件,包括:
S501、根据解压后文件的第五个字节判断字节序是高位还是低位,若第五个字节小于2说明,则判断字节序为高位,并从第二个字节读取FAR的长度,若第五个字节大于等于2,则判断字节序为低位,并从第一个字节读取FAR的长度;
S502、响应于FAR的长度不是2,则判断解压后文件为非法文件;
S503、响应于FAR的长度是2,则判断第三个字节和第四个字节是否为0和10,若第三个字节不是0或第四个字节不是10,则判断解压后文件为非法文件,若第三个字节是0且第四个字节是10,则判断解压后文件不是非法文件。
其中,在这里读取的前6个字节就是FAR记录,可以通过FAR来判断解压后文件是否是合法的SFTD文件。
需要说明的是,对于解压后的gzip文件来说,可以根据第5个字节判断字节序是高位还是低位,如果小于2说明是高位,从第二个字节读取FAR的长度;反之则是低位,从第一个字节读取FAR的长度;另外,FAR的长度是固定值2,如果FAR的长度不是2,则为非法文件;如果FAR的长度是2,则接着判断第三个字节和第四个字节是否为0和10,如果其中一个不是,则为非法文件。
S106、响应于解压后的文件不是非法文件,则从解压后文件中识别出MIR记录;
具体的,从解压后文件中识别出MIR记录,包括:
从解压后文件的第七个字节开始读取四个字节,其中,在读取的四个字节中:前两个字节是记录的总长度,第三个字节记录的是记录的主类型,第四个字节记录的是记录的子类型;
响应于记录的主类型为1,且子类型为10,则判断当前记录为MIR记录;
响应于记录的主类型不是1,或子类型不是10,则判断当前记录不是MIR记录,并跳过当前记录往后读取四个字节继续识别MIR记录,直至识别出MIR记录。
请参表1,从第七个字节开始,读取4位,其中前两位是记录的长度,第三位是记录的主类型,第四位是记录的子类型。如果主类型为1,子类型为10,则表示当前记录为MIR记录,否则按长度(4+读取的记录长度)跳过当前记录,例如:当前记录的长度是250个字节,那么则从第七个字节开始跳过250+4=254个字节,从而能够刚好跳过当前记录,然后按当前解析规则继续读取下一记录,直到找到MIR记录。
表1:解压后的gzip文件格式
S107、按长度读取完整的MIR记录字节流,并跳过前4个字节解析MIR记录的详细内容;
需要说明的是,请参阅图3,解析的规则如下(数字的解析都涉及字节序,需要根据高低位解析,高位需要反转,低位不用处理,单字节数字不受影响,解析过程中不再赘述,因为MIR前面记录长度不固定,解析的起始位置只能定位MIR记录排除头部4个字节的第一位):
1.SETUP_T是一个4字节的无符号数字,读取第1、2、3、4四个字节,然后解析成数字;
2.START_T是一个4字节的无符号数字,读取第5、6、7、8四个字节,然后解析成数字;
3.STAT_NUM是一个1字节的无符号数字,读取第9个字节,然后解析成数字;
4.MODE_COD是一个1字节的字符串,读取第10个字节,然后解析成字符串;
5.RTST_COD是一个1字节的字符串,读取第11个字节,然后解析成字符串;
6.PROT_COD是一个1字节的字符串,读取第12个字节,然后解析成字符串;
7.BURN_TIM是一个2字节的无符号数字,读取第13、14四个字节,然后解析成数字;
8.CMOD_COD是一个1字节的字符串,读取第15个字节,然后解析成字符串;
9.LOT_ID是一个不定长度字符串,读取第16个字节,然后解析成字符串长度,再根据此长度读取字节数组,最后根据ASCII解析成字符串;
10.剩下的属性均为不定长字符串,都按此规则解析。
S108、根据解析结果判断当前MIR记录是否是需要完整解析的目标文件。
具体的,根据解析结果判断当前MIR记录是否是需要完整解析的目标文件,包括:
根据EXEC_TYP判断解析结果的字符串是否包含8.的关键字,FAMLY_ID是否为目标客户;
响应于解析结果的字符串包含8.的关键字,且FAMLY_ID为目标客户,则当前MIR记录为需要解析的目标文件。
其中,EXEC_TYP是MIR的第16个属性,用来记录测试程序的版本,FAMLY_ID是MIR的第23个属性,用来记录客户的编号,例如目标客户ID为:ABC,我们此处的扫描只针对ABC客户,那程序的配置文件中会配置好ABC,这样就可以判断是否为目标客户。
如图2所示,若在步骤S108中并找出需要识别的目标文件(即目标客户的MIR记录),则返回至步骤S102,并读取前N*n个字节,其中,N为初次读取的字节数,n为读取压缩的stdf文件的次数,并继续执行步骤S103-S108,直至读取到完整的MIR记录停止循环。
实施例二
如图4所示,本申请实施例二所涉及的一种快速读取gzip压缩的stdf文件MIR信息的装置,包括:
初步筛选模块,用于根据通配符初步筛选出经过压缩的stdf文件列表;
读取模块,用于读取压缩的stdf文件的前N个字节,其中,N为1024的正整数倍;
第一判断模块,用于根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件;
解压缩模块,用于响应于压缩的stdf文件是合法的,则根据gzip的算法对前N个字节进行解压缩;
第二判断模块,用于根据解压后文件的前6个字节判断是否是非法文件;
识别模块,用于响应于解压后的文件不是非法文件,则从解压后文件中识别出MIR记录;
解析模块,用于按长度读取完整的MIR记录字节流,并跳过前4个字节解析MIR记录的详细内容;
第三判断模块,用于根据解析结果判断当前MIR记录是否是需要完整解析的目标文件。
实施例三
本申请实施例三所涉及的一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如本申请实施例一中的任意一种实现方式中方法的步骤;
其中,计算机可读存储介质可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM);计算机可读存储介质可以存储程序代码,当计算机可读存储介质中存储的程序被处理器执行时,处理器用于执行如本申请实施例一中的任意一种实现方式中方法的步骤。
实施例四
本申请实施例四所涉及的一种电子设备,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如本申请实施例一中的任意一种实现方式中的方法;
其中,处理器可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例一中的任意一种实现方式中的方法。
处理器还可以是一种集成电路电子设备,具有信号的处理能力。在实现过程中,本申请实施例一中的任意一种实现方式中方法的各个步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器还可以是通用处理器、数字信号处理器、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成本申请实施例的数据处理的装置中包括的单元所需执行的功能,或者执行本申请实施例一中的任意一种实现方式中方法。
以上,仅为本申请较佳的具体实施方式;但本申请的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,根据本申请的技术方案及其改进构思加以等同替换或改变,都应涵盖在本申请的保护范围内。
Claims (10)
1.一种快速读取gzip压缩的stdf文件MIR信息的方法,其特征在于,包括:
根据通配符初步筛选出经过压缩的stdf文件列表;
读取压缩的stdf文件的前N个字节,其中,N为1024的正整数倍;
根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件;
响应于压缩的stdf文件是合法的,则根据gzip的算法对前N个字节进行解压缩;
根据解压后文件的前6个字节判断是否是非法文件;
响应于解压后的文件不是非法文件,则从解压后文件中识别出MIR记录;
按长度读取完整的MIR记录字节流,并跳过前4个字节解析MIR记录的详细内容;
根据解析结果判断当前MIR记录是否是需要完整解析的目标文件。
2.根据权利要求1所述的快速读取gzip压缩的stdf文件MIR信息的方法,其特征在于,所述通配符为*.stdf.gz或*.gz中的任意一种。
3.根据权利要求1所述的快速读取gzip压缩的stdf文件MIR信息的方法,其特征在于,读取压缩的stdf文件的前2048个字节,若未读取到完整的MIR记录,则读取前2048*n个字节,其中,n为读取压缩的stdf文件的次数,直至读取到完整的MIR记录停止循环。
4.根据权利要求1所述的快速读取gzip压缩的stdf文件MIR信息的方法,其特征在于,根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件,包括:
读取压缩的stdf文件中文件头的前两个字节;
判断压缩的stdf文件中文件头的前两个字节是否为31和139;
响应于压缩的stdf文件中文件头的前两个字节是31和139,则判断当前压缩的stdf文件是合法的压缩文件;
响应于压缩的stdf文件中文件头的前两个字节不是31和139,则判断当前压缩的stdf文件不是合法的压缩文件。
5.根据权利要求1所述的快速读取gzip压缩的stdf文件MIR信息的方法,其特征在于,根据解压后文件的前6个字节判断是否是非法文件,包括:
根据解压后文件的第五个字节判断字节序是高位还是低位,若第五个字节小于2说明,则判断字节序为高位,并从第二个字节读取FAR的长度,若第五个字节大于等于2,则判断字节序为低位,并从第一个字节读取FAR的长度;
响应于FAR的长度不是2,则判断解压后文件为非法文件;
响应于FAR的长度是2,则判断第三个字节和第四个字节是否为0和10,若第三个字节不是0或第四个字节不是10,则判断解压后文件为非法文件,若第三个字节是0且第四个字节是10,则判断解压后文件不是非法文件。
6.根据权利要求1所述的快速读取gzip压缩的stdf文件MIR信息的方法,其特征在于,从解压后文件中识别出MIR记录,包括:
从解压后文件的第七个字节开始读取四个字节,其中,在读取的四个字节中:前两个字节是记录的总长度,第三个字节记录的是记录的主类型,第四个字节记录的是记录的子类型;
响应于记录的主类型为1,且子类型为10,则判断当前记录为MIR记录;
响应于记录的主类型不是1,或子类型不是10,则判断当前记录不是MIR记录,并跳过当前记录往后读取四个字节继续识别MIR记录,直至识别出MIR记录。
7.根据权利要求1-6中任一项所述的快速读取gzip压缩的stdf文件MIR信息的方法,其特征在于,根据解析结果判断当前MIR记录是否是需要完整解析的目标文件,包括:
根据EXEC_TYP判断解析结果的字符串是否包含8.的关键字,FAMLY_ID是否为目标客户;
响应于解析结果的字符串包含8.的关键字,且FAMLY_ID为目标客户,则当前MIR记录为需要解析的目标文件。
8.一种快速读取gzip压缩的stdf文件MIR信息的装置,其特征在于,包括:
初步筛选模块,用于根据通配符初步筛选出经过压缩的stdf文件列表;
读取模块,用于读取压缩的stdf文件的前N个字节,其中,N为1024的正整数倍;
第一判断模块,用于根据压缩的stdf文件中文件头的前两个字节判断是否是合法的压缩文件;
解压缩模块,用于响应于压缩的stdf文件是合法的,则根据gzip的算法对前N个字节进行解压缩;
第二判断模块,用于根据解压后文件的前6个字节判断是否是非法文件;
识别模块,用于响应于解压后的文件不是非法文件,则从解压后文件中识别出MIR记录;
解析模块,用于按长度读取完整的MIR记录字节流,并跳过前4个字节解析MIR记录的详细内容;
第三判断模块,用于根据解析结果判断当前MIR记录是否是需要完整解析的目标文件。
9.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如权利要求1-7中任一项所述方法的步骤。
10.一种电子设备,其特征在于,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211609060.4A CN116226047A (zh) | 2022-12-14 | 2022-12-14 | 一种快速读取gzip压缩的stdf文件MIR信息的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211609060.4A CN116226047A (zh) | 2022-12-14 | 2022-12-14 | 一种快速读取gzip压缩的stdf文件MIR信息的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226047A true CN116226047A (zh) | 2023-06-06 |
Family
ID=86575714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211609060.4A Pending CN116226047A (zh) | 2022-12-14 | 2022-12-14 | 一种快速读取gzip压缩的stdf文件MIR信息的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226047A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891787A (zh) * | 2024-03-15 | 2024-04-16 | 武汉磐电科技股份有限公司 | 电流互感器量值溯源数据处理方法、系统以及设备 |
-
2022
- 2022-12-14 CN CN202211609060.4A patent/CN116226047A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891787A (zh) * | 2024-03-15 | 2024-04-16 | 武汉磐电科技股份有限公司 | 电流互感器量值溯源数据处理方法、系统以及设备 |
CN117891787B (zh) * | 2024-03-15 | 2024-05-28 | 武汉磐电科技股份有限公司 | 电流互感器量值溯源数据处理方法、系统以及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109324996B (zh) | 日志文件处理方法、装置、计算机设备及存储介质 | |
US9959276B2 (en) | Static feature extraction from structured files | |
US7685637B2 (en) | System security approaches using sub-expression automata | |
US7234165B1 (en) | Malware scanning of compressed computer files | |
US20080005265A1 (en) | Method for automatic parsing of variable data fields from textual report data | |
CN110995273B (zh) | 电力数据库的数据压缩方法、装置、设备及介质 | |
US20190259126A1 (en) | Image hidden information detector | |
CN113688240B (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
CN110888791A (zh) | 一种日志处理方法、装置、设备和存储介质 | |
CN116226047A (zh) | 一种快速读取gzip压缩的stdf文件MIR信息的方法及装置 | |
US20060005241A1 (en) | System security approaches using state tables | |
CN111273891A (zh) | 基于规则引擎的业务决策方法、装置及终端设备 | |
CN112115105A (zh) | 一种业务处理方法、装置及设备 | |
CN113704180A (zh) | 一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法 | |
CN111581057A (zh) | 一种通用日志解析方法、终端设备及存储介质 | |
CN107169057B (zh) | 一种重复图片的检测方法和装置 | |
US9871807B2 (en) | Generic protocol decoder for generic application-level protocol signatures | |
CN110032432B (zh) | 实例的压缩方法和装置、实例的解压方法和装置 | |
CN116192462A (zh) | 一种基于pe文件格式的恶意软件分析方法及装置 | |
CN113111200B (zh) | 审核图片文件的方法、装置、电子设备和存储介质 | |
US8959088B2 (en) | Log management method, log management system, and information processing apparatus | |
CN114979100A (zh) | 一种云资源检查方法及相关装置 | |
CN114595136A (zh) | 一种日志解析方法、装置及设备 | |
CN114547628A (zh) | 漏洞检测方法及装置 | |
CN112748930A (zh) | 编译检测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |