3.6.1. pfi::text::csv¶
3.6.1.1. 概要¶
CSVパーザ。
3.6.1.2. 使い方¶
3.6.1.2.1. parser作成¶
char型を返すイテレータを渡す
vector<char> s;
csv_parser p(s.begin(), s.end());
istreamを渡す
ifstream ifs("hoge");
csv_parser p(ifs);
stringを渡す
csv_parser p("a,b,c\nd,e,f");
3.6.1.2.2. イテレーション¶
next()で回す
while(p.next())
for (size_t i=0; i<p.get().size(); i++)
cout<<p.get()[i]<<endl;
csv_parser::get() は vector<const char*> を返す。
イテレータで回す
for (csv_iterator it(p), jt; it!=jt; ++it)
for (size_t i=0; i<it->size(); i++)
cout<<(*it)[i]<<endl;
3.6.1.2.3. お手軽インターフェース¶
void parse_csv(const string &input, vector<vector<string> > &ret);
3.6.1.3. サンプルコード¶
#include <iostream>
#include <fstream>
#include <pficommon/text/csv.h>
using namespace std;
int main(int argc, char *argv[])
{
ifstream ifs(argv[1]);
if (!ifs) return 0;
pfi::text::csv_parser psr(ifs);
for (pfi::text::csv_iterator p(psr), q; p!=q; ++p){
for (size_t i=0; i<p->size() ;i++)
cout<<(*p)[i]<<'$'<<endl;
cout<<"====="<<endl;
}
}