This commit is contained in:
张壹 2024-12-19 09:45:55 +08:00
parent af0cc92ecc
commit aae11ecd20
2 changed files with 21 additions and 14 deletions

View File

@ -354,19 +354,22 @@ void gctl::geodsv_io::fill_column_point2dc(int xid, int yid, const array<point2d
throw std::runtime_error("[gctl::geodsv_io] Invalid column index.");
}
int st = 0;
if (thead_ == ColumnHead || thead_ == BothHead) st = 1;
std::stringstream ss;
std::string s;
for (size_t i = 0; i < std::min(row_num_, (int) data.size()); i++)
for (size_t i = 0; i < std::min(row_num_ - st, (int) data.size()); i++)
{
ss.clear();
ss << data[i].x;
ss >> s;
table_[i][xid].str_ = s;
table_[i + st][xid].str_ = s;
ss.clear();
ss << data[i].y;
ss >> s;
table_[i][yid].str_ = s;
table_[i + st][yid].str_ = s;
}
return;
}
@ -389,22 +392,22 @@ void gctl::geodsv_io::fill_column_point3dc(int xid, int yid, int zid, const arra
std::stringstream ss;
std::string s;
for (size_t i = st; i < std::min(row_num_, (int) data.size()); i++)
for (size_t i = 0; i < std::min(row_num_ - st, (int) data.size()); i++)
{
ss.clear();
ss << data[i - st].x;
ss << data[i].x;
ss >> s;
table_[i][xid].str_ = s;
table_[i + st][xid].str_ = s;
ss.clear();
ss << data[i - st].y;
ss << data[i].y;
ss >> s;
table_[i][yid].str_ = s;
table_[i + st][yid].str_ = s;
ss.clear();
ss << data[i - st].z;
ss << data[i].z;
ss >> s;
table_[i][zid].str_ = s;
table_[i + st][zid].str_ = s;
}
return;
}

View File

@ -60,6 +60,7 @@ namespace gctl
ss << in;
ss >> str_;
}
else if constexpr (std::is_same<T, std::string>::value) str_ = in;
else str_ = std::to_string(in);
return;
}
@ -377,9 +378,9 @@ namespace gctl
int st = 0;
if (thead_ == ColumnHead || thead_ == BothHead) st = 1;
for (size_t i = st; i < std::min(row_num_, data.size()); i++)
for (size_t i = 0; i < std::min(row_num_ - st, (int) data.size()); i++)
{
table_[i][idx].value(data[i - st], p);
table_[i + st][idx].value(data[i], p);
}
return;
}
@ -402,9 +403,9 @@ namespace gctl
int st = 0;
if (thead_ == RowHead || thead_ == BothHead) st = 1;
for (size_t i = st; i < std::min(col_num_, data.size()); i++)
for (size_t i = 0; i < std::min(col_num_ - st, (int) data.size()); i++)
{
table_[idx][i].value(data[i - st], p);
table_[idx][i + st].value(data[i], p);
}
return;
}
@ -413,6 +414,7 @@ namespace gctl
void dsv_io::fill_row(std::string name, const array<T> &data, int p)
{
fill_row(name_index(name, true), data, p);
return;
}
template <typename T>
@ -438,6 +440,7 @@ namespace gctl
void dsv_io::get_column(std::string name, array<T> &data)
{
get_column(name_index(name, false), data);
return;
}
template <typename T>
@ -463,6 +466,7 @@ namespace gctl
void dsv_io::get_row(std::string name, array<T> &data)
{
get_row(name_index(name, true), data);
return;
}
/**