本文整理汇总了C++中LString::toDouble方法的典型用法代码示例。如果您正苦于以下问题:C++ LString::toDouble方法的具体用法?C++ LString::toDouble怎么用?C++ LString::toDouble使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LString
的用法示例。
在下文中一共展示了LString::toDouble方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: readQdfData
void CrystalInfo::readQdfData(const DataTab &in)
{
LString val;
if (in.containsKey("CrystalInfo.lena")) {
val = in.get("CrystalInfo.lena");
val.toDouble(&m_cella);
}
if (in.containsKey("CrystalInfo.lenb")) {
val = in.get("CrystalInfo.lenb");
val.toDouble(&m_cellb);
}
if (in.containsKey("CrystalInfo.lenc")) {
val = in.get("CrystalInfo.lenc");
val.toDouble(&m_cellc);
}
if (in.containsKey("CrystalInfo.anga")) {
val = in.get("CrystalInfo.anga");
val.toDouble(&m_alpha);
}
if (in.containsKey("CrystalInfo.angb")) {
val = in.get("CrystalInfo.angb");
val.toDouble(&m_beta);
}
if (in.containsKey("CrystalInfo.angg")) {
val = in.get("CrystalInfo.angg");
val.toDouble(&m_gamma);
}
if (in.containsKey("CrystalInfo.sgid")) {
val = in.get("CrystalInfo.sgid");
val.toInt(&m_nSG);
}
}
示例2: readHeader
void OpenDXPotReader::readHeader(qlib::LineStream &ins)
{
// skip the header remarks
int nok=0;
qlib::LRegExpr re_origin, re_object, re_delta;
re_object.setPattern("object 1 class gridpositions counts\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)");
re_origin.setPattern("origin\\s+([e\\d\\.\\-\\+]+)\\s+([e\\d\\.\\-\\+]+)\\s+([e\\d\\.\\-\\+]+)");
re_delta.setPattern("delta\\s+([e\\d\\.\\-\\+]+)\\s+([e\\d\\.\\-\\+]+)\\s+([e\\d\\.\\-\\+]+)");
while (nok<7) {
readRecord(ins);
if (m_recbuf.startsWith("#")) {
// comment
continue;
}
if (m_recbuf.startsWith("object 2")) {
++nok;
continue;
}
if (m_recbuf.startsWith("object 3")) {
++nok;
continue;
}
if (re_object.match(m_recbuf)) {
LString snx = re_object.getSubstr(1);
LString sny = re_object.getSubstr(2);
LString snz = re_object.getSubstr(3);
if (!snx.toInt(&m_nx)) {
MB_THROW(qlib::FileFormatException, "Invalid map format: "+m_recbuf);
return;
}
if (!sny.toInt(&m_ny)) {
MB_THROW(qlib::FileFormatException, "Invalid map format: "+m_recbuf);
return;
}
if (!snz.toInt(&m_nz)) {
MB_THROW(qlib::FileFormatException, "Invalid map format: "+m_recbuf);
return;
}
++nok;
continue;
}
else if (re_origin.match(m_recbuf)) {
LString snx = re_origin.getSubstr(1);
LString sny = re_origin.getSubstr(2);
LString snz = re_origin.getSubstr(3);
if (!snx.toDouble(&m_xmin)) {
MB_THROW(qlib::FileFormatException, "Invalid map format: "+m_recbuf);
return;
}
if (!sny.toDouble(&m_ymin)) {
MB_THROW(qlib::FileFormatException, "Invalid map format: "+m_recbuf);
return;
}
if (!snz.toDouble(&m_zmin)) {
MB_THROW(qlib::FileFormatException, "Invalid map format: "+m_recbuf);
return;
}
++nok;
continue;
}
else if (re_delta.match(m_recbuf)) {
LString snx = re_delta.getSubstr(1);
LString sny = re_delta.getSubstr(2);
LString snz = re_delta.getSubstr(3);
double x,y,z;
if (!snx.toDouble(&x)) {
MB_THROW(qlib::FileFormatException, "Invalid map format: "+m_recbuf);
return;
}
if (!sny.toDouble(&y)) {
MB_THROW(qlib::FileFormatException, "Invalid map format: "+m_recbuf);
return;
}
if (!snz.toDouble(&z)) {
MB_THROW(qlib::FileFormatException, "Invalid map format: "+m_recbuf);
return;
}
if (qlib::isNear(y, 0.0) && qlib::isNear(z, 0.0)) {
m_hx = x;
++nok;
continue;
}
if (qlib::isNear(x, 0.0) && qlib::isNear(z, 0.0)) {
m_hy = y;
++nok;
continue;
}
if (qlib::isNear(x, 0.0) && qlib::isNear(y, 0.0)) {
m_hz = z;
++nok;
continue;
}
//.........这里部分代码省略.........
示例3: read
// read from stream
void PsfReader::read(qlib::InStream &ins)
{
int i, ires;
qlib::LineStream ls(ins);
m_pls = &ls;
// skip header line
readLine();
readLine();
///////////////////
// read REMARK header line
readLine();
removeComment();
int ncomment;
if (!m_line.toInt(&ncomment)) {
MB_THROW(qlib::FileFormatException, "Cannot read ncomment line");
return;
}
MB_DPRINTLN("ncomment=%d", ncomment);
for (i=0; i<ncomment; ++i) {
readLine();
m_line = m_line.trim("\r\n ");
LOG_DPRINTLN("%s", m_line.c_str());
}
readLine();
///////////////////
// read atoms
readLine();
removeComment();
if (!m_line.toInt(&m_natom)) {
MB_THROW(qlib::FileFormatException, "Cannot read natom line");
return;
}
MB_DPRINTLN("natoms=%d", m_natom);
LString stmp;
for (i=0; i<m_natom; ++i) {
readLine();
// LOG_DPRINTLN("%s", m_line.c_str());
// chain name
stmp = m_line.substr(9, 3);
stmp = stmp.trim(" ");
// stmp = stmp.toLowerCase();
LString chain(stmp.c_str());
// residue number
stmp = m_line.substr(14, 4);
int nresi;
if (!stmp.toInt(&nresi)) {
LString msg = LString::format("cannot convert resid number: %s", stmp.c_str());
MB_THROW(qlib::FileFormatException, msg);
return;
}
ResidIndex residx(nresi);
// residue name
stmp = m_line.substr(19, 4);
stmp = stmp.trim(" ");
// stmp = stmp.toLowerCase();
LString resn(stmp.c_str());
// atom name
stmp = m_line.substr(24, 4);
stmp = stmp.trim(" ");
// stmp = stmp.toLowerCase();
LString name(stmp.c_str());
// charge
stmp = m_line.substr(34, 10);
double charge;
if (!stmp.toDouble(&charge)) {
LString msg = LString::format("cannot convert charge %s", stmp.c_str());
MB_THROW(qlib::FileFormatException, msg);
return;
}
// mass
stmp = m_line.substr(50, 8);
double mass;
if (!stmp.toDouble(&mass)) {
LString msg = LString::format("cannot convert mass <%s>", stmp.c_str());
MB_THROW(qlib::FileFormatException, msg);
return;
}
ElemID eleid = convMassElem(mass);
//LOG_DPRINTLN("ATOM %s %s %d %s",
//(*pAtoms)[i].name.c_str(),
//(*pAtoms)[i].resn.c_str(),
//(*pAtoms)[i].resid,
//(*pAtoms)[i].chain.c_str());
//.........这里部分代码省略.........