elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con archivo csv
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con archivo csv  (Leído 2,461 veces)
SoyBolita

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Ayuda con archivo csv
« en: 29 Diciembre 2019, 20:16 pm »

Hola a todos, verán tengo una consulta estoy realizando un pequeño programa en C++, el cual por cierto es primera vez que uso este lenguaje(soy bastante novato). bueno lo que tengo que hacer es leer un archivo .CSV y pasarlo a un DataGridView lo que he podido lograr pero es de manera "estática" es decir tengo que declarar cuantas columnas posee ese archivo, por ejemplo lo probé con 4 columnas pero no me va a resultar si el archivo csv tiene mas o menos de cuatro columnas, el problema es que no logro hacer que la lectura sea en forma dinámica y se adapte a cualquier cantidad de columnas del archivo.

Este es el código con el que hago la lectura:

Código:

ifstream in(filename);

if (in.fail()) {

MessageBox::Show("Error al abrir el archivo", "Mesaje");
}
else {

std::string campo1;
std::string campo2;
std::string campo3;
std::string campo4;

while (!in.eof()) {

getline(in, campo1, ',');
getline(in, campo2, ',');
getline(in, campo3, ',');
getline(in, campo4, '\n');

  String^ c1 = gcnew String(campo1.c_str());
  String^ c2 = gcnew String(campo2.c_str());
String^ c3 = gcnew String(campo3.c_str());
String^ c4 = gcnew String(campo4.c_str());

Importacion::dataGridVistaCSV->Columns->Add("c1", "C1");
  Importacion::dataGridVistaCSV->Columns->Add("c2", "C2");
Importacion::dataGridVistaCSV->Columns->Add("c3", "C3");
        Importacion::dataGridVistaCSV->Columns->Add("c4", "C4");

Importacion::dataGridVistaCSV->Rows->Add(c1,c2,c3,c4);

}

     }


También quisiera saber si creen que es recomendable usar visual studio para crear el programa ya que debo utilizar interfaz de usuario.

espero puedan ayudarme y desde ya muchas gracias. ;D



En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Ayuda con archivo csv
« Respuesta #1 en: 9 Enero 2020, 01:52 am »

vamos suponer que hayas leído una linea de un archivo:
Código
  1. linea1 campo1,linea1 campo2,linea1 campo3,linea1 campo4,linea1 campo5

Lo que se pueda hacer(Y no digo que sea el metodo más efectivo) es una especie de strtok así como:
Código
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. using namespace std;
  5.  
  6. int main(){
  7.    std::string linea("linea1 campo1,linea1 campo2,linea1 campo3,linea1 campo4,linea1 campo5");
  8.    std::istringstream ss(linea);
  9.    std::string token;
  10.    int nColumnas = 0;
  11.  
  12.    while (std::getline(ss, token, ',')){
  13.        //std::cout << token << std::endl;
  14.        nColumnas++; //contador de columnas
  15.    }
  16.  
  17.    cout<< "El numero de columnas es: " << nColumnas << endl;
  18.  
  19.    return 0;
  20. }
Se puede montar una fácilmente una función y pasar una string, y que esa string le retorne el numero de columnas que tiene el tal csv.

Espero que sirva... De todos modos puedes buscar en google algo así: "Como saber el numero de columnas de un archivo csv en c++"

Suerte


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con un archivo *cue
Software
Quintus 2 2,087 Último mensaje 30 Octubre 2004, 10:58 am
por Quintus
Ayuda con un archivo BAT
Scripting
ars1993 4 2,937 Último mensaje 17 Septiembre 2012, 14:16 pm
por Geormarsch
AYUDA!!! Necesito ayuda para descifrar un archivo Ensamblado
Ingeniería Inversa
tritritsn 1 2,565 Último mensaje 4 Enero 2013, 18:22 pm
por MCKSys Argentina
[AYUDA][PYTHON] Ayuda para pasar un archivo ZIP a Base64 y viceversa
Scripting
Noxware 2 3,766 Último mensaje 9 Julio 2014, 18:37 pm
por Noxware
AYUDA!! solicito ayuda con archivo flash
Foro Libre
billbull 2 1,956 Último mensaje 25 Septiembre 2015, 20:31 pm
por billbull
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines