读取csv文件实例.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[原创]CSV Parser 在以前公司的时候用MFC container写过一个处理CSV文件的简单的Parser。换到新公司之后公司有条要求,就是能用STL Container的就不用MFC container。于是刚刚用STL重写了一遍,如果大家觉得有用不妨用用。欢迎帮我查查错。 CSV格式指的是用逗号分隔的字符串(Comma sepatate value)。在读取简单文本数据时应用最为广泛。(数据复杂是一般存储为XML格式。)任何用只有一层结构的数据,或者Class,Object都可以很方便的用CSV读取。 在读写CSV时要注意逗号和引号,如果一列数据已经有一个逗号,就不能再简单的用逗号作分割符,这一列数据会被自动加上。同样如果一列数据中如果用引号也会造成混淆。CSV会在没个引号后附加一个引号。 我写的Class CCSVLineParser主要用一下几个函数:GetAt(), SetAt(), GetFullString(), SetFullString(), size()。分别是读,写某一列,读写整行和得到总列数。我没有用operator overloading重载符号“[]而用了GetAt, SetAt()是我扩展了一点SetAt()的功能。GetAt(int intIndex)返回所制定的列的字符,如果intIndex越界会throw exception。而SetAt()只有在index小于零时throw exception,如果所制定的列数index过大,CSV会自动括展至这一列。同时表示整行字符的变量也会更新。 把下面的一个字符存在.csv文件然后用excel打开,你会发现他是5列。和程序的接过一样 下面是测试程序: 程序代码: #include \stdafx.h\ #include \csvlineparser.h\ // basic_string_erase.cpp // compile with: /EHsc #include string #include iostream int _tmain(int argc, _TCHAR* argv[]) { using namespace std; string str1 ( \a,\\b\\\\sassaa\\,\\aw\\\\,\\\\w\\\\jj\\,asd,\\axsxs\\\ ); CCSVLineParser csv(str1); try { for (int i = 0; i (int)csv.size()+1; i++) { cout csv.GetAt(i) endl; } } catch(CCSVLineParser::Range ex) { cout ex.sText endl; } catch(...) { } cout str1 endl; cout csv.GetFullString(false) endl; cout csv.GetFullString() endl; csv.SetAt(6, string(\haha\\,\\haha\)); cout csv.GetFullString(false) endl; cout csv.GetFullString() endl; } 下面是.h和.cpp CSVLineParser.h 程序代码: #pragma once #include vector #include string using namespace std; class CCSVColumn { public: CCSVColumn(string sDisplay); CCSVColumn(string sActual, string sDisplay): m_sActual(sActual), m_sDisplay(sDisplay) {} private: string m_sDisplay; string m_sActual; friend class CCSVLineParser; }; class CCSVLineParser { public: CCSVLineParser(string sFullString = \\); ~CCSVLineParser(void); size_t size(void); string GetAt(int intIndex, bool bActual = false); void SetFullString(string sLine); void SetAt(int intIndex, string sColumn); string GetFullString(bool bActual = true); bo

文档评论(0)

mhk8089 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档