一种CSV格式文件的数据提取方法及系统技术方案

技术编号:16101810 阅读:58 留言:0更新日期:2017-08-29 22:31
本发明专利技术公开了一种CSV格式文件的数据提取方法及系统,所述方法包括如下步骤:按顺序遍历所述CSV格式文件的每一个字符;只有当所述字符为文件结束符并且引号标识关闭时,才认定所述CSV格式文件提取成功,如果所述字符为文件结束符但引号标识符未关闭则认定所述CSV格式文件的格式错误。本发明专利技术的方法及系统简单高效易懂,最大限度将多种特殊情况的处理归纳到几个步骤内,而且可以方便的运用于各种软件系统开发中,且可跨编程语言进行应用;另外,本发明专利技术的扩展性也很强,可以扩展到别的文字编码格式。

【技术实现步骤摘要】
一种CSV格式文件的数据提取方法及系统
本专利技术涉及一种域名托管
,具体涉及一种基于UTF-8编码的CSV格式的数据提取方法及系统。
技术介绍
在域名托管领域,注册商会以CSV格式的文件传输给注册局,注册局需提取这些CSV文件格式的字段值并校验,且文件的编码格式规定为UTF-8格式。UTF-8(8-bitUnicodeTransformationFormat)是一种针对Unicode的可变长度字符编码,又称万国码。由KenThompson于1992年创建。现在已经标准化为RFC3629。UTF-8用1到4个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。对于逗号分隔值(Comma-SeparatedValues,CSV)文本,其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以CRLF换行符分隔;每条记录由字段组成,字段间的分隔符是逗号,所有记录都有完全相同的字段序列。CSV文件是一个计算机数据文件用于执行审判和真正的组织工具,逗号分隔的清单。CSV文件以数字存储的数据结构表的形式列出,相关的项(成员)组与其他项(成员)由逗号隔开。表格中的行与CSV文件的行对应。同行字段用逗号分隔。CSV文件常常被用于在两个不同的计算机程序之间移动表格数据,例如关系数据库程序和电子表格程序。CSV类似excel格式,每一条记录分多个列,指定的某行某列便是一个单元格,但每个单元格中也可换行。对于这种格式有以下几点需要注意:1、每条记录中的某列单元格中可能存在换行符。所以在遍历时,需要特别注意是否真正完成一条记录。2、如果单元格字段中需要展示双引号,则需要使用双引号进行转义,即””表示一个引号,且该字段也必须被双引号引起来。3、CSV格式以逗号分隔,如果单元格中需要展示逗号,同样需要对该字段用双引号引入,但是单个双引号不能单独出现在字段中,比如:正确的格式举例:Abc,”abc,abc”,123;错误的格式举例:Abc,abc”,”abc,123。因此,对于传输后获取的文件内容进行提取时,就需要有一种有效的方法来完成,以区分每个单元格的数据。
技术实现思路
为解决以上问题,本专利技术设计了一种基于UTF-8编码的CSV格式的数据提取方法及系统,对于传输后获取的文件内容进行提取,能够区分每个单元格的数据。具体的,本专利技术公开了一种CSV格式文件的数据提取方法,包括如下步骤:按顺序遍历所述CSV格式文件的每一个字符;只有当所述字符为结束符并且引号标识关闭时,才认定所述CSV格式文件提取成功,如果当所述字符为文件结束符但引号标识未关闭,则认定所述CSV格式文件的格式错误。优选的,如上所述的CSV格式文件的数据提取方法,当所述字符为双引号并且该引号是关闭符时,按顺序获取文件的下一个字符。优选的,如上所述的CSV格式文件的数据提取方法,当所述字符为双引号并且该引号不是关闭符时,如果该字符的前一个字符是逗号、引号或空,则按顺序获取文件的下一个字符。优选的,如上所述的CSV格式文件的数据提取方法,当所述字符为逗号或换行符并且引号标识关闭时,先获取单元格字段值,再按顺序获取文件的下一个字符。优选的,如上所述的CSV格式文件的数据提取方法,当所述字符为逗号或换行符并且引号标识没有关闭时,直接按顺序获取文件的下一个字符。优选的,如上所述的CSV格式文件的数据提取方法,所述单元格为该字符所在的单元格。优选的,如上所述的CSV格式文件的数据提取方法,如果该字符不是结束符、双引号、逗号、换行符中的任意一个,则直接按顺序获取文件的下一个字符。根据本专利技术的另一个方面,还提供了一种CSV格式文件的数据提取方法,包括如下步骤:(1)、获取CSV格式文件的一个字符,并判断该字符是否文件结束符;如果该字符是文件结束符则进入步骤(2),如果该字符不是文件结束符则进入步骤(3);(2)、判断引号标识是否关闭,如果引号标识没有关闭则认定所述CSV文件格式错误,如果引号标识关闭则认定所述CSV文件提取成功;(3)、判断该字符是否双引号,如果该字符是双引号则进入步骤(4),如果该字符不是双引号则进入步骤(5);(4)、判断该引号是否为关闭符,如果是则按顺序获取文件的下一个字符,进入步骤(1),如果否则进入步骤(8);(5)、判断该字符是否逗号,如果是则进入步骤(6),如果否则进入步骤(7);(6)、判断引号标识是否关闭,如果是则先获取单元格字段值,再按顺序获取文件的下一个字符,进入步骤(1),如果否则直接按顺序获取文件的下一个字符,进入步骤(1);(7)、判断该字符是否换行符,如果是则进入步骤(6),如果否则按顺序获取文件的下一个字符,进入步骤(1);(8)、判断该字符的前一个字符是否逗号、引号或空,如果是则按顺序获取文件的下一个字符,进入步骤(1),如果否则所述CSV文件格式错误。根据本专利技术的另一个方面,还提供了一种CSV格式文件的数据提取系统,包括如下模块:遍历模块,用于按顺序遍历所述CSV格式文件的每一个字符;提取结果认定模块,用于当所述字符为结束符并且引号标识关闭时,认定所述CSV格式文件提取成功,如果当所述字符为文件结束符但引号标识未关闭,则认定所述CSV格式文件的格式错误。本专利技术的优点在于,本专利技术的方法及系统简单高效易懂,最大限度将多种特殊情况的处理归纳到几个步骤内,而且可以方便的运用于各种软件系统开发中,且可跨编程语言进行应用;另外,本专利技术的扩展性也很强,可以扩展到别的文字编码格式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:附图1示出了根据本专利技术实施例的基于UTF-8编码的CSV格式文件的数据提取方法流程框图;附图2示出了根据本专利技术实施例的基于UTF-8编码的CSV格式文件的数据提取方法的算法原理框图;附图3示出了根据本专利技术实施例的基于UTF-8编码的CSV格式文件的数据提取系统的结构图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。如图1所示,本专利技术提供了一种基于UTF-8编码的CSV格式文件的数据提取方法,包括如下步骤:S110、按顺序遍历所述CSV格式文件的每一个字符;S120、只有当所述字符为结束符并且引号标识关闭时,才认定所述CSV格式文件提取成功,如果当所述字符为文件结束符但引号标识未关闭,则认定所述CSV格式文件的格式错误。当所述字符为双引号并且该引号是关闭符时,按顺序获取文件的下一个字符。当所述字符为双引号并且该引号不是关闭符时,如果该字符的前一个字符是逗号、引号或空,则按顺序获取文件的下一个字符。当所述字符为逗号或换行符并且引号标识关闭时,先获取单元格字段值,再按顺序本文档来自技高网
...
一种CSV格式文件的数据提取方法及系统

【技术保护点】
一种CSV格式文件的数据提取方法,包括如下步骤:按顺序遍历所述CSV格式文件的每一个字符;只有当所述字符为文件结束符并且引号标识关闭时,才认定所述CSV格式文件提取成功,如果当所述字符为文件结束符但引号标识未关闭,则认定所述CSV格式文件的格式错误。

【技术特征摘要】
1.一种CSV格式文件的数据提取方法,包括如下步骤:按顺序遍历所述CSV格式文件的每一个字符;只有当所述字符为文件结束符并且引号标识关闭时,才认定所述CSV格式文件提取成功,如果当所述字符为文件结束符但引号标识未关闭,则认定所述CSV格式文件的格式错误。2.如权利要求1所述的CSV格式文件的数据提取方法,其特征在于,当所述字符为双引号并且该引号是关闭符时,按顺序获取文件的下一个字符。3.如权利要求1或2所述的CSV格式文件的数据提取方法,其特征在于,当所述字符为双引号并且该引号不是关闭符时,如果该字符的前一个字符是逗号、引号或空,则按顺序获取文件的下一个字符。4.如权利要求1所述的CSV格式文件的数据提取方法,其特征在于,当所述字符为逗号或换行符、并且引号标识关闭时,先获取单元格字段值,再按顺序获取文件的下一个字符。5.如权利要求1所述的CSV格式文件的数据提取方法,其特征在于,当所述字符为逗号或换行符、并且引号标识没有关闭时,直接按顺序获取文件的下一个字符。6.如权利要求4所述的CSV格式文件的数据提取方法,其特征在于,所述单元格为该字符所在的单元格。7.如权利要求1所述的CSV格式文件的数据提取方法,其特征在于,如果该字符不是结束符、双引号、逗号、换行符中的任意一个,则直接按顺序获取文件的下一个字符。8.一种CSV格式文件的数据提取方法,包括如下步骤:(1)、获取CSV格式文件的一个字符,并...

【专利技术属性】
技术研发人员:李晓东卫俊凯
申请(专利权)人:中国互联网络信息中心
类型:发明
国别省市:北京,11

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

1