SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: ppgizbo@yahoo.com.mx en Miércoles 21 de Julio de 2004, 18:11

Título: Pasar Archivo Txt A Una Base De Datos
Publicado por: ppgizbo@yahoo.com.mx en Miércoles 21 de Julio de 2004, 18:11
Necesito saber como leer un archivo txt y pasarlo a una base de datos, el archivo esta de la siguiente forma

| 108554   | 19.09.2003  | Opera falsa alarma     |   Mecanico  |  METR ORAS

cada campo esta delimitado por el simbolo |  
cada línea es un registro para la base de datos.

Adjunte un archivo de los que tengo que pasar

gracias   :whistling:
Título: Re: Pasar Archivo Txt A Una Base De Datos
Publicado por: ErickCerPa en Domingo 1 de Agosto de 2004, 05:32
Facil


Checa este codigo y adaptalo

Tienes que saber a que campo va cada cosa

elimina el primer simbolo ya sea saltando con codigo o eliminalo a mano

le puese nombres de campo temporales y aqui te los muesto


la tabla la debes presentar sin el | inicial para que el codigo que el codigo que te paso fucine, si no quieres quietarcelo pues modifica un poquito el Memo1 donde cargas el archivo para que puedas quitar el |

(Me explico)

  Numero   Fecha               Concepto              Destino      Otros
 108554 | 19.09.2003 | Opera falsa alarma | Mecanico | METR ORAS |

//CHECA BIEN LOS | DONDE ESTAN UBICADOS

Código: Text
  1.  
  2.          TTable *Table1;
  3.          Table1=Clientes->ClientesT; //o como le quieras llamar
  4. //espero sepas por lo menos manejar tablas
  5.  
  6.          Table1->Filtered=false;
  7.          Memo1->Lines->LoadFromFile("tu_archivo.TXT");
  8.        //el archivo txt que dices
  9.  
  10. //limpiamos la tabla (opcional)
  11.          Table1->First();
  12.          while (Table1->Eof==false)
  13.             Table1->Delete();//terminamos de limpiar la tabla
  14.  
  15.  
  16. //         Table1->Edit();
  17.  
  18.          for (int i=0; i<=Memo1->Lines->Count-1; i++)
  19.             {
  20.               Table1->Append();
  21.  
  22.               S=Memo1->Lines->Strings[i];
  23.               pos = S.Pos("|");
  24.               S2= S.SubString(1,pos-1);
  25.               S.Delete(1,pos);
  26.               Table1->FieldByName("Numero")->Value=S2.ToInt();
  27.  
  28.               pos = S.Pos("|");
  29.               S2= S.SubString(1,pos-1);
  30.               S.Delete(1,pos);
  31.               Table1->FieldByName("Fecha")->Value=S2;
  32.  
  33.               pos = S.Pos("|");
  34.               S2= S.SubString(1,pos-1);
  35.               S.Delete(1,pos);
  36.               Table1->FieldByName("Concepto")->Value=S2;
  37.  
  38.               pos = S.Pos("|");
  39.               S2= S.SubString(1,pos-1);
  40.               S.Delete(1,pos);
  41.               Table1->FieldByName("Destino")->Value=S2;
  42.  
  43.               pos = S.Pos("|");
  44.               S2= S.SubString(1,pos-1);
  45.               S.Delete(1,pos);
  46.               Table1->FieldByName("Otros")->Value=S2;
  47.  
  48.               Table1->Post();
  49.             }//fin for
  50.  
  51.  


Facil no cres

Si necesitas ayuda solo pon otro MSG

Saludos
y Mucha Mucha Suerte

Bytes :hola:
Título: Re: Pasar Archivo Txt A Una Base De Datos
Publicado por: aguilot_21 en Jueves 14 de Julio de 2005, 15:45
Para hacerlo sin el memo como se leeria??
Título: Re: Pasar Archivo Txt A Una Base De Datos
Publicado por: juanma en Lunes 25 de Julio de 2005, 18:33
Lo mas comodo es el loadfromfile, pero si quieres leer linea a linea puedes

#include<fstream.h>


//en la funcion
  ifstream myfile;
  char buf[512];


  myfile.open("c:\\test.txt");
  if(!myfile)
   .. error!

  //donde el bucle for del mensaje anterior
  while(!myfile.eof()) {
    myfile.getline(buf, sizeof(buf));
    String cLn = buf;
    // y troceamos el cLn como en el mensaje anterior
    ...
    }
  myfile.close();

Creo recordar que hay lectura de ficheros con clases mas faciles pero no tengo a mano el código.
Título: Re: Pasar Archivo Txt A Una Base De Datos
Publicado por: juanma en Lunes 25 de Julio de 2005, 19:06
Error en el mensaje anterior, para pasar el char a string usar el constructor:

String cLn(buff);


Lo que comenté sobre otras clases para manejo de ficheros es para usar un formato fijo y es la clase TFileStream.

Saludos
Juanma
Título: Re: Pasar Archivo Txt A Una Base De Datos
Publicado por: slau en Jueves 26 de Enero de 2006, 13:29
HOLA QUE TAL!!!necesito ayuda con un cambio de char* a string.si alguien me puede ayudar se lo agradezco muchisimo!!!saludos a todoss!!!XD :lightsabre: