示例#1
0
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;
}
示例#2
0
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;
}