解析PPT中内嵌的swf文件的方法及系统与流程

文档序号:12271997阅读:580来源:国知局
解析PPT中内嵌的swf文件的方法及系统与流程

本发明涉及计算机技术领域,尤其涉及一种解析PPT中内嵌的swf文件的方法及系统。



背景技术:

随着多媒体的发展,PPT运用越来越广泛。为了让展示更生动,PPT中一般会内嵌swf文件,但是内嵌的swf文件无法提取出来单独使用。

公开号为CN 103049303 A的中国专利公开了一种swf文件解析方法,包括步骤:加载文件,读入swf文件;分析文件,分析swf文件结构的正确性;解析文件,若分析swf文件结构正确,对文件结构设置正确的swf文件进行解析;测试文件,检测swf文件的外观配置是否合适;并提取文件,提取swf文件的组成元素以供再次使用;修改文件,若分析swf文件结构不正确,对该swf文件进行修改。

然而,上述方法是对一个确定的swf文件进行解析,而PPT中内嵌的swf文件都是加密后的,其大小、位置都不确定,因此无法使用上述方法进行解析。



技术实现要素:

本发明所要解决的技术问题是:提供一种能够解析PPT内嵌的swf文件的方法及系统。

为了解决上述技术问题,本发明采用的技术方案为:

一种解析PPT中内嵌的swf文件的方法,包括:

S1:解析PPT文件得到flash文件;

S2:读取所述flash文件的二进制流;

S3:若读取到三个连续的二进制字节对应的内容依次为“F”、“W”和“S”,则获取接下来的四个连续的二进制字节;

S4:依据所述四个连续的二进制字节的值计算得到所述flash文件的大小;

S5:从所述四个连续的二进制字节之后的一位开始获取n个字节,所述n的值与所述flash文件的大小的值相同;

S6:保存所述n个字节。

本发明的另一个技术方案为:

一种解析PPT中内嵌的swf文件的系统,包括:

解析模块,用于解析PPT文件得到flash文件;

读取模块,用于读取所述flash文件的二进制流;

第一获取模块,用于若读取到三个连续的二进制字节对应的内容依次为“F”、“W”和“S”,则获取接下来的四个连续的二进制字节;

运算模块,用于依据所述四个连续的二进制字节的值计算得到所述flash文件的大小;

第二获取模块,用于从所述四个连续的二进制字节之后的一位开始获取n个字节,所述n的值与所述flash文件的大小的值相同;

保存模块,用于保存所述n个字节。

本发明的有益效果在于:通过解析PPT文件能够得到其内嵌的flash文件,由于flash文件加密规则的特性,如果flash文件中连续的三个二进制字节对应的内容依次为“F”、“W”和“S”,则说明该flash文件为swf格式的文件,即为要获取的文件;并且可对接下来的四个连续的二进制字节进行运算得到该swf格式的文件的大小,从而依据该大小即可获取完整的swf文件,再对获取到的swf文件进行保存,以进行后续应用;具有实现方式简单、结果准确等优点。

附图说明

图1为本发明实施例的解析PPT中内嵌的swf文件的方法的流程图;

图2为本发明实施例的解析PPT中内嵌的swf文件的系统的结构示意图;

图3为本发明实施例一的解析PPT中内嵌的swf文件的方法的流程图。

标号说明:

1、解析模块;2、读取模块;3、第一获取模块;4、运算模块;5、第二获取模块;6、保存模块。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:若读取到三个连续的二进制字节对应的内容依次为“F”、“W”和“S”,则获取接下来的四个连续的二进制字节,并计算flash文件的大小,按照flash文件的大小获取字节,得到swf文件。

请参照图1,本发明提供:

一种解析PPT中内嵌的swf文件的方法,包括:

S1:解析PPT文件得到flash文件;

S2:读取所述flash文件的二进制流;

S3:若读取到三个连续的二进制字节对应的内容依次为“F”、“W”和“S”,则获取接下来的四个连续的二进制字节;

S4:依据所述四个连续的二进制字节的值计算得到所述flash文件的大小;

S5:从所述四个连续的二进制字节之后的一位开始获取n个字节,所述n的值与所述flash文件的大小的值相同;

S6:保存所述n个字节。

从上述描述可知,本发明解析PPT中内嵌的swf文件的方法的有益效果在于:通过在PPT文件中找到swf文件的标识,以及计算出该swf文件的大小,即可获取整个swf文件。从而能够将PPT中内嵌的swf提取出来单独使用,提高了资源的复用率。

进一步的,所述S4包括:

S41:将所述四个连续的二进制字节的值分别依次与四个预设值一一对应,并将所述四个连续的二进制字节的值分别与跟其一一对应的四个预设值相乘之后再相加,得到所述flash文件的大小;所述四个预设值依次为:1、256、65536和16777216。

从上述描述可知,上述计算方法是依据swf文件加密的规则特性得到,具体的计算方式可有多种,如将上述四个连续的二级制字节的值分别逆序乘以16777216、65536、256、1之后再相加。

进一步的,所述S6具体为:

将所述n个字节以文件形式保存,并将保存后的文件以swf为后缀命名。

从上述描述可知,这样用户可以直观地获知该文件为swf文件,当然,命名不限于上述形式,用户可自行调整。

进一步的,解析得到的flash文件的数目为两个以上,对每个flash文件依次执行S2-S6。

从上述描述可知,一个PPT通常会嵌入不止一个flash文件,对该PPT中的所有flash文件都进行上述S2-S6的处理,从而提取出该PPT中所有的swf文件。

请参照图2,本发明的另一个技术方案为:

一种解析PPT中内嵌的swf文件的系统,包括:

解析模块1,用于解析PPT文件得到flash文件;

读取模块2,用于读取所述flash文件的二进制流;

第一获取模块3,用于若读取到三个连续的二进制字节对应的内容依次为“F”、“W”和“S”,则获取接下来的四个连续的二进制字节;

运算模块4,用于依据所述四个连续的二进制字节的值计算得到所述flash文件的大小;

第二获取模块5,用于从所述四个连续的二进制字节之后的一位开始获取n个字节,所述n的值与所述flash文件的大小的值相同;

保存模块6,用于保存所述n个字节。

从上述描述可知,本发明解析PPT中内嵌的swf文件的系统的有益效果在于:通过解析模块能够从PPT文件中解析得到flash文件,并通过读取读取模块读取该flash文件的二进制流,从而第一获取模块和运算模块能够得到swf文件的大小,第二获取模块载根据该swf文件的大小获取整个swf文件,并经保存模块保存后,即可对swf文件进行单独使用。

进一步的,所述运算模块4具体用于将所述四个连续的二进制字节的值分别依次与四个预设值一一对应,并将所述四个连续的二进制字节的值分别与跟其一一对应的四个预设值相乘之后再相加,得到所述flash文件的大小;所述四个预设值依次为:1、256、65536和16777216。

进一步的,所述保存模块6具体用于将所述n个字节以文件形式保存,并将保存后的文件以swf为后缀命名。

进一步的,解析模块1解析出来的flash文件的数目为两个以上,将每个flash文件依次送入读取模块2。

请参照图3,本发明的实施例一为:

一种解析PPT中内嵌的swf文件的方法,包括:

S1:解析PPT文件得到flash文件;

S2:读取所述flash文件的二进制流;

S3:若读取到三个连续的二进制字节对应的内容依次为“F”、“W”和“S”,则获取接下来的四个连续的二进制字节;

S41:将所述四个连续的二进制字节的值分别依次与四个预设值一一对应,并将所述四个连续的二进制字节的值分别与跟其一一对应的四个预设值相乘之后再相加,得到所述flash文件的大小;所述四个预设值依次为:1、256、65536和16777216;

S5:从所述四个连续的二进制字节之后的一位开始获取n个字节,所述n的值与所述flash文件的大小的值相同;

S6:将所述n个字节以文件形式保存,并将保存后的文件以swf为后缀命名。

若解析得到的flash文件的数目为多个,则对每个flash文件依次执行S2-S6。

下面以一个具体实例说明本发明的内容:

(1)解析一个含flash文件的PPT文件;

(2)获取解析得到的文件中ppt\activeX这个文件夹下的所有以bin为后缀的文件;

(3)读取上述(2)获取的第一个bin文件的二进制流;

(4)假设该二进制流的第4个字节对应的内容为“F”,第5个字节对应的内容为“S”,第6个字节对应的内容为“W”,则说明该flash文件为swf文件,继续读取第7、8、9、10这四个字节的二进制值;

(5)将第7个字节的二进制值乘以1、第8个字节的二进制值乘以256、第9个字节的二进制值乘以65536、第10个字节的二进制值乘以1677216,并将相乘得到的结果相加之后得到该swf文件的大小;

(6)从第11个字节开始,获取与该swf文件的大小的值数量相同的连续的字节,以文件形式保存,并以swf为后缀命名;

按照上述过程,依次读取上述(2)获取的其他所有bin文件的二进制流,并进行相同处理得到所有swf文件。

请参照图2,本发明的实施例二为:

一种解析PPT中内嵌的swf文件的系统,包括:

解析模块1,用于解析PPT文件得到flash文件;

读取模块2,用于读取所述flash文件的二进制流;

第一获取模块3,用于若读取到三个连续的二进制字节对应的内容依次为“F”、“W”和“S”,则获取接下来的四个连续的二进制字节;

运算模块4,用于将所述四个连续的二进制字节的值分别依次与四个预设值一一对应,并将所述四个连续的二进制字节的值分别与跟其一一对应的四个预设值相乘之后再相加,得到所述flash文件的大小;所述四个预设值依次为:1、256、65536和16777216;

第二获取模块5,用于从所述四个连续的二进制字节之后的一位开始获取n个字节,所述n的值与所述flash文件的大小的值相同;

保存模块6,用于将所述n个字节以文件形式保存,并将保存后的文件以swf为后缀命名;

若解析模块1解析出来的flash文件的数目为两个以上,将每个flash文件依次送入读取模块2。

综上所述,本发明提供的解析PPT中内嵌的swf文件的方法及系统,能够将PPT中内嵌的swf文件提取出来单独使用,提高了资源的复用率。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1