Como Usar QT4 CSV file reader o Alguna opción para leer datos de un .csv



  • Hola Un gusto y muchos saludos.

    En mi proyecto necesito usar un documento .csv. asi que busque un proyecto que aparentemente sirve para leer los datos de un .csv tiene un pequeño ejemplo pero lo creo y no sucede nada.
    inserte el codigo de ejemplo y cree un documento llamado "import.csv" pero no se me muestra los datos.
    No se si estoy ubicando mal el archivo o llamándolo mal, ya ubique la dirección completa del archivo .csv y no abre.
    Adjunto el codigo de ejemplo:
    @ QFile file("import.csv");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){
    qDebug()<< "cannot read file!";
    }
    CSV csv(&file);
    qDebug() << csv.parseLine();@

    Porfavor si alguien ya ha trabajado con esto que pueda ayudarme o si lo ha resuelto de otra forma le agradezco que me de un ejemplo.
    Cabe resaltar que yo no necesito mostrar el archivo en la pantalla solo necesito leer sus datos y hacer operaciones con estos.
    Estara insertado en una interfaz de usuario donde el mismo le de click en explorar y se abra un qfiledialog y en un editline se muestre la dirección del documento. después de esto el programa realizara cálculos con los datos que se encuentran en el .csv
    Adjunto el proyecto:
    "QT4 CSV file reader":http://sourceforge.net/projects/qcsv/
    Espero ser claro. Agradezco de antemano cualquier persona que me pueda ayudar.



  • He solucionado mi problema con el siguiente proyecto:
    "Proyecto":http://qtsimplify.blogspot.com/2013/02/dealing-with-csv-files-easy-way.html
    Es muy sencillo y captura los datos del .csv muy bien.
    El unico cambio es borrarle la linea donde pone el csv en la tabla, luego de esto a la variable model se le pueden extraer los datos como si fuera una tabla, para ser mas explicito indico mi solución en codigo:
    @ bool convertionOk;
    int nRowsx=model->rowCount();//Numero de filas que existen en la tabla
    int nRows=0;//Numero de filas que tienen valores numericos
    double tmp1;
    //En esta parte se hace un analisis de valores nulos para que no los tome
    QList<QString> valores;
    for(int i=0;i<nRowsx;i++){
    QStandardItem *item=model->item(i,0);
    if (item!=NULL){
    QString strContent = item->text();
    if (!strContent.isEmpty()){
    valores<<strContent;
    }
    }
    }
    //Se asignan los valores numericos a un vector de salida (values[nRows])
    nRows=valores.size();
    double values[nRows];
    for(int i=0;i<nRows;i++){
    tmp1=valores.at(i).toDouble(&convertionOk);
    if (convertionOk){
    values[i]=tmp1;
    }
    }@

    Este código me abre un .csv y me extrae los valores numéricos de la tabla, lo que significa que la tabla puede tener valores vacíos.
    Cabe resaltar que como borramos la linea donde muestra la tabla, no mostrara ningun valor inclusive pueden borrar la tabla que los cálculos son internos.
    Sin embargo si alguien conoce otro método para llamar .csv que me de a saber le agradezco, hasta ahora solo pruebo.
    Agradezco su atención y ayuda.
    Muchas gracias.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.