abrir Qfile y pasarlo a lista
-
Hola, como ya puse en el titulo, no se como pasar los datos de un archivo a una lista en qt.
En mi programa, tengo una clase Producto con sus atirbutos. Cuando creo un objeto, lo guardo en una lista y al finalizar el programa se guarda en un archivo. Hasta ahi todo bien, ahora lo que quiero es poder pasar el archivo a mi lista cuando inicie el programa.
Saludos -
Hola
Pues si ya has guardado la información en un archivo, ahora es el proceso inverso, tendrás que ir leyendo ese archivo, crear los productos con la información que recuperes y añadirlos a la lista.
Y, en vez de guardar en un archivo los datos ¿No has pensado en SQLite? Depende qué quieras guardar o hacer con los datos puede ser más eficiente.
Un saludo
-
Entiendo, pero como hago para que cuando lea el archivo, pueda tomar cada atributo de un objeto y crear el producto? no se si me explico del todo bien.
No he escucho del SQLite, no tengo idea para que es jajaj. Gracias por la respuesta -
@juan-pablo-pardal said in abrir Qfile y pasarlo a lista:
Entiendo, pero como hago para que cuando lea el archivo, pueda tomar cada atributo de un objeto y crear el producto? no se si me explico del todo bien.
Pues hombre, tú sabrás XD. Ya has guardado los datos, ahora tienes que leerlos igual que los guardaste e ir creando los objetos con los datos leídos, nosotros no tenemos ni idea de que es la clase Producto ni como guardaste los datos ni la estructura del archivo de los mismos.
No he escucho del SQLite, no tengo idea para que es jajaj. Gracias por la respuesta
SQLite es un gestor de bases de datos, no necesita instalación para usar con Qt y es suficientemente potente para muchas aplicaciones. Pero para usarlo tienes que tener unas nociones mínimas del lenguaje SQL y diseño de bases de datos.
Un saludo
-
jajaja te copio una parte del codigo. Creo que es la parte mas importante para esta parte
QFile nombres;
nombres.open(QIODevice::WriteOnly | QIODevice::Text);
foreach (producto p, listaprod) {QString nom = p.getnom(); ui->plainTextEdit->appendPlainText(p.getnom()); QByteArray qb = nom.toUtf8();
nombres.write(qb);
nombres.write(" ");nombres.flush();
nombres.close();
Ya se que en este caso solo estoy guardando el nombre de cada producto, lo hice asi para entender como funciona y luego le agrego para que guarde los demas atributos. Estos atributos son nombre, codigo, precio, stock.
Seguramente este mal implementado el codigo, o rompa con el paradigma de objetos, pero queria probar si funcionaba asi jaja
No se si necesitas algo mas o esta bien.
saludos -
@juan-pablo-pardal said in abrir Qfile y pasarlo a lista:
Hola
Repasate la documentación de la clase QFlle, que igual que se escribe, se lee. Pero ya te adelanto que no es una buena forma de hacerlo así, cuando vayas a guardar más datos tendrás que crearte un struct o alguna forma de guardarlos y recuperarlos "todos juntos", si no te vas a volver loco.
Ya se que en este caso solo estoy guardando el nombre de cada producto, lo hice asi para entender como funciona y luego le agrego para que guarde los demas atributos. Estos atributos son nombre, codigo, precio, stock.
Necesitas mirarte las bases de datos, esto normalmente se guarda usando un gestor de bases de datos, resulta más cómodo y rápido, además, Qt ya proporciona un montón de clases para manipularlas y resulta bastante sencillo.
Un saludo