一种面向通用文本格式的解析方法及工具技术

技术编号:16546742 阅读:55 留言:0更新日期:2017-11-11 11:37
本发明专利技术公开了一种面向通用文本格式的解析方法及工具。本方法为:1)对于一待解析数据a,首先将其对应的各种自定义符号导入解析工具中,然后采用指定的文件编码格式读取该待解析数据a;自定义符号包括行分隔符、字段包围符和字段间分隔符;2)解析工具将解析数据a中的自定义符号统一转换文字符串类型;3)解析工具逐个分析所读取的字符,如果该字符及其后面n个字符组成的字符串与行分隔符一致,则根据行分隔符将待解析数据a分割成行数据;4)解析工具分析得到的行数据,根据字段包围符解析出行数据中所有的记录;5)解析工具逐个分析得到的每个记录,根据字段间分隔符解析出每条记录中所有的字段。本发明专利技术大大提高了解析效率。

An analytic method and tool for general text format

The invention discloses an analytic method and a tool for general text format. The method is as follows: 1) for a data analysis of a, firstly various custom symbols into the corresponding analytical tools, then the encoding format of the specified file to read the a data to be analyzed; custom symbols include row delimiter, field surrounded by symbols and inter field delimiter; 2) analytical tools to parse the data a the custom symbol character string type conversion; 3) analytical tools by analysis of the read characters, if the string and the character and N behind the character delimiter, according to row delimiter to parse the data in a data segmentation; 4) analytical tools to analyze data were obtained, according to the match the record of all analytical field surrounded by travel data; 5) analytical tools by analyzing each record, according to the inter field delimiter parsing all fields of each record. The invention greatly improves the analytic efficiency.

【技术实现步骤摘要】
一种面向通用文本格式的解析方法及工具
本专利技术涉及一种面向通用文本格式的解析工具,属于计算机软件

技术介绍
通用文本格式规范为:通用文本由任意数目的记录组成,记录间以自定义的换行符分隔;每条记录由字段组成,字段间以自定义的字段间分隔符分隔;可自定义字段间包围符;字段中包含有换行符,该字段必须用字段包围符括起来;字段中包含有字段间分隔符,该字段必须用字段包围符括起来;字段中包含有字段包围符,该字段必须用字段包围符括起来;字段中的字段包围符用两个字段包围符表示。通用文本格式的解析工具实现对遵循格式规范的文本字段解析。目前的文本解析工具主要针对逗号分隔值(Comma-SeparatedValue,CSV)文件,行分隔符采用系统默认的换行符,字段间分隔符采用逗号或制表符,字段包围符采用双引号,文本解析工具解析出文件中的每条记录以及每条记录中的各个字段。目前的文本解析工具主要针对逗号分隔值文件,可自定义字段间分隔符和字段包围符,但行分隔符采用系统默认的换行符,不能自定义换行符;字段间分隔符和字段包围符可自定义为特定的字符,但不能定义为特定的字符串或字节数组。专利
技术实现思路
本专利技术的本文档来自技高网
...
一种面向通用文本格式的解析方法及工具

【技术保护点】
一种面向通用文本格式的解析方法,其步骤为:1)对于一待解析数据a,首先将其对应的各种自定义符号导入解析工具中,然后采用指定的文件编码格式读取该待解析数据a;其中该待解析数据a为一文件或数据流,所述自定义符号包括行分隔符、字段包围符和字段间分隔符;2)解析工具将解析数据a中的自定义符号统一转换文字符串类型;3)解析工具逐个分析所读取的字符,如果该字符及其后面n个字符组成的字符串与行分隔符一致,则根据行分隔符将待解析数据a分割成行数据,其中n为行分隔符的长度减一;4)解析工具分析得到的行数据,根据字段包围符解析出行数据中所有的记录;5)解析工具逐个分析得到的每个记录,根据字段间分隔符解析出每条记录...

【技术特征摘要】
1.一种面向通用文本格式的解析方法,其步骤为:1)对于一待解析数据a,首先将其对应的各种自定义符号导入解析工具中,然后采用指定的文件编码格式读取该待解析数据a;其中该待解析数据a为一文件或数据流,所述自定义符号包括行分隔符、字段包围符和字段间分隔符;2)解析工具将解析数据a中的自定义符号统一转换文字符串类型;3)解析工具逐个分析所读取的字符,如果该字符及其后面n个字符组成的字符串与行分隔符一致,则根据行分隔符将待解析数据a分割成行数据,其中n为行分隔符的长度减一;4)解析工具分析得到的行数据,根据字段包围符解析出行数据中所有的记录;5)解析工具逐个分析得到的每个记录,根据字段间分隔符解析出每条记录中所有的字段。2.如权利要求1所述的方法,其特征在于,根据字段包围符解析出行数据中所有的记录的方法为:21)设置一记录结束标识并将其值初始化为false,将每行数据中的两个连续字段包围符解析为字段内的一个包围符,将一个字段包围符解析为字段的一个包围符,然后向前扫描字符;若该字段的包围符为当前行的最后一个字符或字符串,且记录结束标识值为true,则该记录解析完成,将记录结束标识置为false;若该字段的包围符为当前行的最后一个字符或字符串,且记录结束标识为false,则判断该包围符是否为记录中一字段开头的包围符,若是字段开头的包围符,则将记录结束标识置为true,接着分析下一行的数据;如果该字段的包围符是该行的最后一个字符或字符串,记录结束标识符是false,且该包围符不是记录中某个字段开头的包围符则抛出出错的行数、偏移量以及错误类型,将记录结束标识置为false;22)若该字段的包围符不是该行的最后一个字符或字符串,且记录结束标识为true,则抛出出错的行数、偏移量以及错误类型,否则将记录结束标识置为false;若该字段的包围符不是该行的最后一个字符或字符串,且记录结束标识为false,则判断该包围符是否为记录中一字段开头的包围符,若是字段开头的包围符,则将记录结束标识置为true,接着向前分析该行的字符;如果该字段的包围符不是该行的最后一个字符或字符串,记录结束标识符是false,该包围符不是记录中某字段开头的包围符,则抛出出错的行数、偏移量以及错误类型,将记录结束标识置为false。3.如权利要求1所述的方法,其特征在于,根据字段间分隔符解析出每条记录中所有的字段的方法为:31)设置一字段结束标识并初始化其值为false,若读取到字段包围符,则向前扫描字符,若向前扫描时已达到记录结尾,且字段结束标识值为true,则该字段解析完成,该条记录也解析完成;否则,抛出出错的行数、偏移量以及错误类型;32)若读取到字段包围符,向前扫描时尚未达到记录结尾,则继续向前扫描:a)若扫描到字段包围符且字段结束标识...

【专利技术属性】
技术研发人员:刘帆木伟民张云王伟平
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1