73 const string& signalName) {
76 return SEND_MSG(
"It already exists a signal with name " + signalName,
80 std::ifstream datafile(fileName.c_str());
82 return SEND_MSG(
"Error trying to read the file " + fileName,
85 const unsigned int SIZE = 1024;
87 std::vector<double> newline;
89 bool firstIter =
true;
90 std::size_t size = -1;
91 string fileNameShort = fileName.substr(1 + fileName.find_last_of(
"/"));
92 while (datafile.good()) {
93 datafile.getline(buffer, SIZE);
94 const std::size_t gcount = datafile.gcount();
96 return SEND_MSG(
"Read error: line " + toString(nbLines) +
97 " too long in file " + fileNameShort,
100 std::istringstream iss(buffer);
106 if (iss.fail())
break;
107 newline.push_back(x);
110 if (newline.size() > 0) {
112 size = newline.size();
113 else if (size != newline.size()) {
114 SEND_MSG(
"In file " + fileNameShort +
115 " nb of elements in each line changed from " +
116 toString(size) +
" to " + toString(newline.size()) +
117 " at line " + toString(nbLines),
119 size = newline.size();
121 m_data[signalName].push_back(
122 Eigen::Map<Vector>(&newline[0], newline.size()));
126 SEND_MSG(
"Finished reading " + toString(nbLines) +
" lines of " +
127 toString(size) +
" elements from file " + fileNameShort,
134 ")::output(dynamicgraph::Vector)::" + signalName);