void PairFinder::getHeader(QString header_file) { if(header_file.isEmpty()) header_file = file; std::ifstream ifs(header_file.toLatin1()); std::string firstLine; getline (ifs, firstLine); ifs.close(); header = removeCharacters(QString::fromStdString(firstLine), "#"); QDomDocument qd; qd.setContent(header); QDomElement element = qd.documentElement(); dimensions=0; for(QDomNode n = element.firstChild(); !n.isNull(); n = n.nextSibling()) { QDomElement e = n.toElement(); if( e.tagName() == "field" ) { ++rawDataCols; if( e.attribute("identifier").contains("Position")) { ++dimensions; if(e.attribute("identifier").contains("1")) { min_maxValues.min_y = removeCharacters(e.attribute("min")," m").toDouble(); min_maxValues.max_y = removeCharacters(e.attribute("max")," m").toDouble(); } else if(e.attribute("identifier").contains("2")) { min_maxValues.min_z = removeCharacters(e.attribute("min")," m").toDouble(); min_maxValues.max_z = removeCharacters(e.attribute("max")," m").toDouble(); } else { min_maxValues.min_x = removeCharacters(e.attribute("min")," m").toDouble(); min_maxValues.max_x = removeCharacters(e.attribute("max")," m").toDouble(); } } } } if(dimensions > 3) dimensions/=2; qDebug() << "PairFinder::getHeader() dimensions: " << dimensions; qDebug() << "PairFinder::getHeader() rawDataCols: " << rawDataCols; qDebug() << "PairFinder::getHeader() max Values from header"; qDebug() << min_maxValues.min_x << " " << min_maxValues.max_x; qDebug() << min_maxValues.min_y << " " << min_maxValues.max_y; qDebug() << min_maxValues.min_z << " " << min_maxValues.max_z; }
string Token::caseDigit(string str) { vector<string> v; split(v, str, separators_number); if (v.size() > 1) { if (v.size() == 2) if ((whatIsIt(v[0]) == INTEGER1) && (whatIsIt(v[1]) == INTEGER1) && (v[0].length() == 4)) if (v[1].length() == 2) v[1] = completeYear(v); str = ""; for (unsigned int i = 0; i < v.size(); i++) { if (v.size() == 2) //palabras compuestas str += v[i]; candidates.push_back(v[i]); } str = removeCharacters(str, ".,"); // Elimino los separadores restantes. if (whatIsIt(str) != ALPHANUMERIC1) str = ""; } else { str = removeCharacters(str, ","); // Elimino el separador de miles. string_type tipo = whatIsIt(str); //lo pongo para evaluar solo una vez if (tipo == FLOAT1) str = roundNumber(str); else { if (tipo == GARBAGE) str = ""; else if (tipo == INTEGER1) { int entero = atoi(str.c_str()); str = toString(entero); } str = removeCharacters(str, "."); // Caso de numero.palabra elimina el punto. Ej: "1.the" } } return str; }