diff options
author | telsoa01 <telmo.soares@arm.com> | 2018-08-31 09:22:23 +0100 |
---|---|---|
committer | telsoa01 <telmo.soares@arm.com> | 2018-08-31 09:22:23 +0100 |
commit | c577f2c6a3b4ddb6ba87a882723c53a248afbeba (patch) | |
tree | bd7d4c148df27f8be6649d313efb24f536b7cf34 /src/armnnUtils/CsvReader.cpp | |
parent | 4c7098bfeab1ffe1cdc77f6c15548d3e73274746 (diff) | |
download | armnn-c577f2c6a3b4ddb6ba87a882723c53a248afbeba.tar.gz |
Release 18.08
Diffstat (limited to 'src/armnnUtils/CsvReader.cpp')
-rw-r--r-- | src/armnnUtils/CsvReader.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/armnnUtils/CsvReader.cpp b/src/armnnUtils/CsvReader.cpp new file mode 100644 index 0000000000..5b66c942ba --- /dev/null +++ b/src/armnnUtils/CsvReader.cpp @@ -0,0 +1,63 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// See LICENSE file in the project root for full license information. +// + +#include "CsvReader.hpp" + +#include <boost/algorithm/string.hpp> +#include <boost/tokenizer.hpp> + +#include <fstream> +#include <string> +#include <vector> + +using Tokenizer = boost::tokenizer<boost::escaped_list_separator<char>>; + +namespace armnnUtils +{ + +CsvRow ParseLine(const std::string& csvLine) +{ + Tokenizer tokenizer(csvLine); + CsvRow entry; + + for (const auto &token : tokenizer) + { + entry.values.push_back(boost::trim_copy(token)); + } + return entry; +} + +std::vector<CsvRow> CsvReader::ParseFile(const std::string& csvFile) +{ + std::vector<CsvRow> result; + + std::ifstream in(csvFile.c_str()); + if (!in.is_open()) + return result; + + std::string line; + while (getline(in, line)) + { + if(!line.empty()) + { + CsvRow entry = ParseLine(line); + result.push_back(entry); + } + } + return result; +} + +std::vector<CsvRow> CsvReader::ParseVector(const std::vector<std::string>& csvVector) +{ + std::vector<CsvRow> result; + + for (auto const& line: csvVector) + { + CsvRow entry = ParseLine(line); + result.push_back(entry); + } + return result; +} +} // namespace armnnUtils
\ No newline at end of file |