Foro de elhacker.net

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: stderr 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: stderr 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
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <sstream>
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9.  
  10. string linea, columna;
  11. ifstream mifichero("d:\\prueba.txt");
  12.  
  13. while (!mifichero.eof()) { // Finaliza el bucle cuando llega al fin del fichero
  14. getline(mifichero, linea); // Leemos linea por linea el fichero
  15.  
  16. istringstream registro(linea); // Cargamos la linea como un stream
  17.  
  18. while (!registro.eof()) { // Cuando no exista mas texto en la linea finaliza el bucle
  19. getline(registro, columna, ';'); //Leemos palabra por palabra teniendo en cuenta el caracter que las separa (;)
  20.  
  21. cout << columna << "-"; // Guardamos la columna o lo que sea, en este caso lo muestro en pantalla
  22. }
  23.  
  24. //Aqui incrementarias el puntero o el contador del registro si lo almacenaras en memoria o lo que sea
  25. cout << endl; // salto de linea.
  26.  
  27. }
  28. system("PAUSE");
  29. return 0;
  30. }
  31.