Leer dos archivos csv

Iniciado por MAXSPEED, 4 Marzo 2018, 22:34 PM

0 Miembros y 1 Visitante están viendo este tema.

MAXSPEED

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...

marcebond

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...

MAXSPEED

#2
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

marcebond

#3
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...

srWhiteSkull

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;
}