- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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和.cppCSVLineParser.h
程序代码:
#pragma once
#include vector#include stringusing 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
您可能关注的文档
- 名言谚语古今贤文.doc
- 基础C++笔试题.doc
- 2009级文科《马原》复习提要.doc
- MRI常见病模板.doc
- 广州住宅装饰装修施工及验收标准(新).doc
- 五上期末语文课文内容复习.doc
- 嵌入式培训第一阶段试题.doc
- string类的实现.doc
- 2015年上海《导游法律知识与道德修养》考试大纲.doc
- USB接口接线方法.doc
- 《GB/T 46383.302-2025电气运输设备 第3-2部分:载物电气运输设备移动性能测试方法》.pdf
- GB/T 46383.302-2025电气运输设备 第3-2部分:载物电气运输设备移动性能测试方法.pdf
- 中国国家标准 GB/T 46383.302-2025电气运输设备 第3-2部分:载物电气运输设备移动性能测试方法.pdf
- 《GB/T 31270.7-2025化学农药环境安全评价试验准则 第7部分:生物富集试验》.pdf
- GB/T 31270.7-2025化学农药环境安全评价试验准则 第7部分:生物富集试验.pdf
- 《GB 5135.2-2025自动喷水灭火系统 第2部分:湿式报警阀、延迟器、水力警铃》.pdf
- GB/T 19412-2025蓄冷(热)空调系统的测试和评价方法.pdf
- 《GB/T 19412-2025蓄冷(热)空调系统的测试和评价方法》.pdf
- 中国国家标准 GB/T 19412-2025蓄冷(热)空调系统的测试和评价方法.pdf
- GB/T 46611-2025电光调制器用铌酸锂单晶薄膜.pdf
原创力文档


文档评论(0)