Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: MAXSPEED en 4 Marzo 2018, 22:34 PM

Título: Leer dos archivos csv
Publicado por: MAXSPEED en 4 Marzo 2018, 22:34 PM
Soy nuevo en C

Necesito un código que me lea dos archivos csv uno de producto y otro de factura los cuales tienen una llave que los comunica... el programa debe pedir la llave o el número de cédula  por ejemplo e imprimir toda la información de un solo cliente gracias...
Título: Re: Leer dos archivos csv
Publicado por: marcebond en 5 Marzo 2018, 00:38 AM
Soy nuevo en tu lenguaje

Necesito una respuesta que me diga qué llevas hecho, la estructura de los ficheros csv que estás leyendo gracias...
Título: Re: Leer dos archivos csv
Publicado por: MAXSPEED en 5 Marzo 2018, 00:48 AM
Tengo dos archivos csv

uno llamado Factura que contiene los siguientes datos
idFactura;IdCliente;Fecha
100200;1026293432;5/02/2018
100201;1101688372;6/02/2018
100202;1019081611;7/02/2018
100203;1024537600;8/02/2018
100204;1030682981;9/02/2018
100205;1023944482;10/02/2018
100206;1072750648;11/02/2018
100207;1045507614;12/02/2018
100208;1019105156;13/02/2018
100209;1031155501;14/02/2018

el otro se llama Smartphone y contiene
IdFactura;IdProducto;Cant
100200;1;2
100201;2;1
100202;3;2
100203;4;3
100204;5;2
100205;6;1
100206;7;1
100207;8;1
100208;9;2
100209;10;2


el codigo debe buscar e imprimir la informacion  completa del cliente pidiendo por consola el IdFactura
Título: Re: Leer dos archivos csv
Publicado por: marcebond en 5 Marzo 2018, 00:49 AM
Y el código? Qué dudas tienes?

EDITO: Te faltan datos amigo, del cliente solo tenemos el id en ese fichero y tu quieres imprimir TODA su información...
Título: Re: Leer dos archivos csv
Publicado por: srWhiteSkull en 5 Marzo 2018, 01:47 AM
Usa getline si vas hacerlo en C++ para parsear el csv. Ejemplo :

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>

using namespace std;

int main(){

string linea, columna;
ifstream mifichero("d:\\prueba.txt");

while (!mifichero.eof()) { // Finaliza el bucle cuando llega al fin del fichero
getline(mifichero, linea); // Leemos linea por linea el fichero

istringstream registro(linea); // Cargamos la linea como un stream

while (!registro.eof()) { // Cuando no exista mas texto en la linea finaliza el bucle
getline(registro, columna, ';'); //Leemos palabra por palabra teniendo en cuenta el caracter que las separa (;)

cout << columna << "-"; // Guardamos la columna o lo que sea, en este caso lo muestro en pantalla
}

//Aqui incrementarias el puntero o el contador del registro si lo almacenaras en memoria o lo que sea
cout << endl; // salto de linea.

}
system("PAUSE");
return 0;
}