1.一种带隔断标识的复合文件生成方法,其特征在于,所述方法包括以下步骤:
1)源文件获取,过程如下:
(1.1)从设备中导入一个文本文件,通过该方法进入用户的设备文件管理器,将根据用户在设备中文件管理器点击选择的文件导入,文件将在应用后台进行解析;
(1.2)用户自定义手动输入文本,过程如下:(1.2.1)首先界面显示若干格文本编辑框,以默认三格文本编辑框为例,每一个文本编辑框由用户输入一句文字或其他字符;
(1.2.2)若三格不能满足用户需求,用户可以点击界面添加按钮新增若干个文本编辑框,继续输入文本;
(1.2.3)当用户输入完毕提交,进行解析;
2)文件解析,过程如下:
(2.1)文本导入
(2.1.1)创建子文件;
(2.1.2)读取导入的文本内容并复制到子文件;
(2.1.3)判断是否为标点符号,如果不是标点符号,则继续读取父文件并复制到子文件;如果是标点符号将当前子文本保存,并判断父文本是否读取完毕,如果没有读完则创建新的子文件重复以上步骤,如果读取完毕等待合成复合文件;
(2.2)编辑框输入
(2.2.1)创建子文件;
(2.2.2)读取编辑框输入的内容并复制到子文件;
(2.2.3)判断是当前编辑框内容是否读完,如果没有读完,则继续读取复制,如果读完将当前子文本保存;
(2.2.4)判断所有编辑框是否读取完毕,如果读取完毕,等待合成复合文件,如果没有读取完毕,创建新的子文件重复以上步骤,即返回(2.2.1);
3)复合文件合成,过程如下:(3.1)顺序添加2个字节信息表示文件的类型;
(3.2)顺序添加2个字节信息表示有多少个子文件需要添加,这些子文件通常为某一次一个导入的文本或用户输入的信息;
(3.3)顺序添加4个字节信息表示复合文件的总字节数,不包含用于描述子文件类型和子文件个数所占的字节数;
(3.4)顺序添加2个字节信息表示当前子文件的序号m;
(3.5)顺序添加4个字节信息表示当前子文件的大小;
(3.6)顺序将子文件内容复制到复合文件;
(3.7)复制完成后将原来子文件删除,减少内存占用;
(3.8)判断子文件是否添加完毕,如果添加完毕保存当前复合文件,若没有添加完毕返回(3.4)。
2.如权利要求1所述的一种带隔断标识的复合文件生成方法,其特征在于,所述复合文件的格式包括以下部分:复合文件头部、子文件序号、子文件字节数和子文件内容;
(5.1)复合文件头部由三部分组成,分别是:(5.1.1)子文件类型,描述其子文件的类型,有文本.txt,.mp3类型,子文件类型的标志位由2个字节描述;
(5.1.2)子文件个数,在文件头部明确该复合文件包含的子文件个数,方便为后面的解析进行校核文本的完整性,子文件的个数这里用2个字节长度进行描述;
(5.1.3)复合文件总字节数,字节数不包含用于描述子文件类型和子文件个数所占的字节数,通过校核文件个数与总字节数机制可以保证文件的完整,复合文件总字节数用4个字节数描述;
(5.2)子文件序号
序号用来区分复合文件包含的若干不同子文件,因为文本要与生成的音频对应,所以不仅仅要与音频一一对应,而且要求音频的顺序与用户输入文本顺序或与源文本句子顺序对应,所以这里通过为每句话(每个子文本)或每个子音频文件设置序号标志进行校验,序号由2个字节描述;
(5.3)子文件字节数
子文件字节数不同于文件头里的复合文件总字节数,字节数紧跟在序号后面与子文件之前,用来描述子文件内容所包含的字节数,同样可以与序号结合起来校验子文件的完整性以及明确标记每个子文件;
(5.4)子文件内容
子文件内容若是文本信息,表示后台对文本进行分隔好的句子信息或用户在每个文本编辑框填入的句子信息,子文件若是音频信息,表示由若干句话生成的若干子音频文件信息。
3.一种带隔断标识的复合文件解析方法,其特征在于,所述方法包括以下步骤:(4.1)读入复合文件;
(4.2)分析复合文件头,过程如下:(4.2.1)顺序读取复合文件头的前两个字节信息,确定该复合文件包含的子文本文件类型;
(4.2.2)然后顺序读文件头的后两个字节确定复合文件的子文本文件个数n;
(4.2.3)然后再顺序读取头文件的后4个字节信息,确定该复合文件总字节数H;
(4.3)顺序再读取2个字节的信息明确所读的子文件序号m;
(4.4)顺序读取4个字节信息确定前述序号的子文件包含的字节数Cx,并为接下来判断读取多少字节的子文本提供标识;
(4.5)顺序读取应该读取相应大小的信息,生成子文本;
(4.6)检查子文件实际读取的大小;
(4.7)判断检查,过程如下:条件1:判断当前子文件是否为最后一个子文件;
条件2:判断目前实际读取的子文件大小总和是否等于各个子文件标明的总大小;
条件3:判断目前读取的所有子文件大小总和是否等于头文件标明的总大小;
(4.7.1)若当前子文件读取完毕后,条件2满足则判断读取无误,进行判断条件1和3,若条件1、3也满足则读取完毕;
(4.7.2)若当前子文件读取完毕后,条件2不满足则判断读取错误停止读取;
(4.7.3)若当前子文件读取完毕后条件1、2满足,但条件3不满足或条件2、3满足,但条件1不满足,则判断读取错误停止读取;
(4.7.4)若当前子文件读取完毕后条件2满足,条件1、3不满足则判断读取未完成,然后从(4.4)开始重复之后步骤;
(4.8)由序号、总字节数、子文件个数和子文件字节数,判断读取是否有误,如果有误则停止读取并检查,提示用户进行下一步操作。
4.如权利要求3所述的一种带隔断标识的复合文件解析方法,其特征在于,所述复合文件的格式包括以下部分:复合文件头部、子文件序号、子文件字节数和子文件内容;
(5.1)复合文件头部由三部分组成,分别是:(5.1.1)子文件类型,描述其子文件的类型,有文本.txt,.mp3类型,子文件类型的标志位由2个字节描述;
(5.1.2)子文件个数,在文件头部明确该复合文件包含的子文件个数,方便为后面的解析进行校核文本的完整性,子文件的个数这里用2个字节长度进行描述;
(5.1.3)复合文件总字节数,字节数不包含用于描述子文件类型和子文件个数所占的字节数,通过校核文件个数与总字节数机制可以保证文件的完整,复合文件总字节数用4个字节数描述;
(5.2)子文件序号
序号用来区分复合文件包含的若干不同子文件,因为文本要与生成的音频对应,所以不仅仅要与音频一一对应,而且要求音频的顺序与用户输入文本顺序或与源文本句子顺序对应,所以这里通过为每句话(每个子文本)或每个子音频文件设置序号标志进行校验,序号由2个字节描述;
(5.3)子文件字节数
子文件字节数不同于文件头里的复合文件总字节数,字节数紧跟在序号后面与子文件之前,用来描述子文件内容所包含的字节数,同样可以与序号结合起来校验子文件的完整性以及明确标记每个子文件;
(5.4)子文件内容
子文件内容若是文本信息,表示后台对文本进行分隔好的句子信息或用户在每个文本编辑框填入的句子信息,子文件若是音频信息,表示由若干句话生成的若干子音频文件信息。