Exemplo n.º 1
0
void ClubLectura::cargarLectores(string archivoLectores) {
	string rutaFichero(archivoLectores);
	string lineaActual;
	pair<string, Lector> pairLector;
	pair<map<string, Lector>::iterator, bool> encontrado;
	list<string> repetidos;
	std::ifstream inputStream;
	Libro* libro;
	inputStream.exceptions(std::ifstream::failbit | std::istream::badbit);
	inputStream.open(rutaFichero);
	int num = 1;
	try {
		while (!inputStream.eof()) {
			//Parseamos la linea
			getline(inputStream, lineaActual);
			auto pos = lineaActual.find('|');
			auto alias = lineaActual.substr(0, pos);
			Lector lector(alias);
			auto puntuaciones = lineaActual.substr(pos + 1, lineaActual.length());
			pos = puntuaciones.find_first_of('-');

			bool fin;
			if (pos < puntuaciones.length()) fin = false;
			else fin = true;
			while (!fin) {
				auto id = puntuaciones.substr(0, pos);
				auto mid = atoi(id.c_str());
				auto puntos = puntuaciones.substr(pos + 2, 1);
				int mpuntos = atoi(puntos.c_str());
				libro = buscarLibro(mid);
				if (libro) {
					lector.nuevaValoracion(libro, mpuntos);
				}
				if (pos + 4 < puntuaciones.length()) {
					puntuaciones = puntuaciones.substr(pos + 4, puntuaciones.length());
					pos = puntuaciones.find_first_of('-');
				}
				else {
					fin = true;
				}

			}
			pairLector.first = alias;
			pairLector.second = lector;
			encontrado = lectores2.insert(pairLector);
			if (!encontrado.second) repetidos.push_back(alias);
		}
	}
	catch (std::ifstream::failure& error) {
		cout << "Fin de la lectura de los lectores." << endl;
	}
	inputStream.close();

}
bool ImageFile::readImageContents()
{
    if (this->open(QIODevice::ReadOnly)){
        QTextStream lector(this);
        int i=0;
        while (!lector.atEnd())
        {
            lectura.insert(i, lector.readLine());
            i++;
        }
        return true;
    }
    return false;
}
Exemplo n.º 3
0
mapa::mapa(QString ubicacionArchivo){
    QFile archivo(ubicacionArchivo);
    if(archivo.open(QIODevice::ReadOnly | QIODevice::Text)){
        QTextStream in(&archivo);
        qDebug("abrio archivo");
        QString texto;
        texto.append(in.readAll());
        archivo.flush();
        archivo.close();
        QXmlStreamReader lector(texto);
        while(!lector.atEnd() && !lector.hasError()){
            if(lector.isStartElement()){
                QString tipo=lector.name().toString();
                if(tipo=="numConceptos"){
                    numConceptos=lector.readElementText().toInt();
                }
                else if(tipo=="concepto"){
                    concepto c;
                    bool conceptoTerminado=false;
                    while(!conceptoTerminado && !lector.hasError()){
                        if(lector.isStartElement()){
                            QString atributo=lector.name().toString();
                            if(atributo=="texto"){
                                c.textConcepto=lector.readElementText().toStdString();
                            }
                            else if(atributo=="posX"){
                                c.posX=lector.readElementText().toInt();
                            }
                            else if(atributo=="posY"){
                                c.posY=lector.readElementText().toInt();
                            }
                            else if(atributo=="numConcepto"){
                                c.numConcepto=lector.readElementText().toInt();
                                conceptoTerminado=true;
                                this->cargarConcepto(c);
                            }
                        }
                        lector.readNext();
                    }
                }
                else if(tipo=="pareja"){
                    qDebug()<<"inicio pareja";
                    int c1;
                    int c2;
                    bool parejaTerminada=false;
                    while(!parejaTerminada && !lector.hasError()){
                        if(lector.isStartElement()){
                            QString atributo=lector.name().toString();
                            if(atributo=="par1"){
                                c1=lector.readElementText().toInt();
                            }
                            else if(atributo=="par2"){
                                c2=lector.readElementText().toInt();
                                parejaTerminada=true;
                                this->agregarUnion(c1,c2);
                            }
                        }
                    lector.readNext();
                    }
                }
            }
            lector.readNext();
        }
        Error=false;
    }
    else{
        Error=true;
    }
}