36 headerLine_(
readBool(dict.lookup(
"hasHeaderLine"))),
37 timeColumn_(readLabel(dict.lookup(
"timeColumn"))),
38 componentColumns_(dict.lookup(
"valueColumns")),
39 separator_(dict.lookupOrDefault<
string>(
"separator",
string(
","))[0])
43 FatalErrorIn(
"csvTableReader<Type>::csvTableReader(const dictionary&)")
44 << componentColumns_ <<
" does not have the expected length "
66 if (componentColumns_[0] >= splitted.
size())
70 "csvTableReader<scalar>::readValue(const List<string>&)"
71 ) <<
"No column " << componentColumns_[0] <<
" in "
76 return readScalar(IStringStream(splitted[componentColumns_[0]])());
81 Type csvTableReader<Type>::readValue(
const List<string>& splitted)
85 for(label i = 0;i < pTraits<Type>::nComponents; i++)
87 if (componentColumns_[i] >= splitted.size())
91 "csvTableReader<Type>::readValue(const List<string>&)"
92 ) <<
"No column " << componentColumns_[i] <<
" in "
99 IStringStream(splitted[componentColumns_[i]])()
134 while (pos != std::string::npos)
136 std::size_t nPos = line.find(separator_, pos);
138 if (nPos == std::string::npos)
140 splitted.
append(line.substr(pos));
145 splitted.
append(line.substr(pos, nPos-pos));
150 if (splitted.
size() <= 1)
156 Type value = readValue(splitted);
161 data.transfer(values);