Я написал только компилятор C ++ 11 CSV . Он хорошо протестирован, быстро, поддерживает всю спецификацию CSV (цитируемые поля, разделитель / терминатор в кавычках, экранирование прокрутки и т. Д.) И настраивается для учета CSV, которые не соответствуют спецификации.
Конфигурация выполняется через свободный интерфейс:
// constructor accepts any input stream
CsvParser parser = CsvParser(std::cin)
.delimiter(';') // delimited by ; instead of ,
.quote('\'') // quoted fields use ' instead of "
.terminator('\0'); // terminated by \0 instead of by \r\n, \n, or \r
Анализ - это всего лишь диапазон, основанный на цикле:
#include
#include "../parser.hpp"
using namespace aria::csv;
int main() {
std::ifstream f("some_file.csv");
CsvParser parser(f);
for (auto& row : parser) {
for (auto& field : row) {
std::cout << field << " | ";
}
std::cout << std::endl;
}
}