基于C语言的开源csv解析库MiniCSV的使用示例.docx

基于C语言的开源csv解析库MiniCSV的使用示例.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

基于C语言的开源csv解析库MiniCSV的使用示例

目录MiniCSV简介官方示例csv文件解析示例

MiniCSV简介

之前写了一篇基于C语言字符串操作函数的csv文件解析:C语言解析csv格式文件,本文介绍一个开源简洁的csv解析库的使用:MiniCSV,使用标准C语言设计。

Atiny,fast,simple,single-file,BSD-licensedCSVparsinglibraryinC.

ShouldbeabletohandleCSVoddities:multi-lines,escapedrows,escapedcharactersinescapedrows,emptyrows,rowswithavariablenumberofcolumns,WindowsorUnix-stylelineendings.

Doesntperformanyheapallocations.

一个小型、快速、简单、单文件、BSD许可的C语言CSV解析库。

应该能够处理CSV的奇怪之处:多行、转义行、转义列中的转义字符、空行、列数可变的行、Windows或Unix风格的行结尾。

不执行任何堆分配。

开源地址

C语言版本

/jedisct1/minicsv

C++版本

/null_237_8629/minicsv_cpp

只有一个.c和一个.h文件,使用起来非常简单。

官方示例

#includestdio.h

#includestdlib.h

#includestdint.h

#includeminicsv.h

intdisplay_cols(char**cols,uint8_tcols_count)

printf(cols=%d:,cols_count);

for(inti=0;icols_count;i++)

printf([%s]\t,cols[i]);

printf(\n);

return0;

intmain(void)

char*cols[7];//每行逗号的个数+1

charstr_csv[]=line1,aa,bb,cc,dd,ee,ff\nline2,11,22,33,44\nline3,1,2,3,4,5;

char*r=str_csv;

uint32_tcols_count;//size_toruint32_t

uint8_tcols_max=sizeof(cols)/sizeof(cols[0]);//最多解析多少列

line1,aa,bb,cc,dd,ee,ff

line2,11,22,33,44

line3,1,2,3,4,5

printf(csvstring:\n%s\n\n,r);

//解析第1行

while(*r!=NULL)

r=minicsv_parse_line(r,cols,cols_count,cols_max);

//cols_count=当前行解析出的列数

display_cols(cols,cols_count);

printf(\nfinish!\n);

return0;

}

运行结果:

csvstring:

line1,aa,bb,cc,dd,ee,ff

line2,11,22,33,44

line3,1,2,3,4,5

cols=7:[line1][aa][bb][cc][dd][ee][ff]

cols=5:[line2][11][22][33][44]

cols=6:[line3][1][2][3][4][5]

finish!

csv文件解析示例

csv文件内容:

序号,姓名,性别,年龄,职位,兼任,备注

1,张珊,女,29,产品经理

2,李思,男,31,架构师,兼产品副经理,试用

3,王伟,男,27,开发工程师

4,赵丽,女,27,测试工程师,,实习

minicsv解析示例:

#includestdio.h

#includestdlib.h

#incl

文档评论(0)

152****2426 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档