• Viernes 17 de Mayo de 2024, 04:48

Autor Tema:  Pasar Archivo Txt A Una Base De Datos  (Leído 2584 veces)

ppgizbo@yahoo.com.mx

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Pasar Archivo Txt A Una Base De Datos
« en: Miércoles 21 de Julio de 2004, 18:11 »
0
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:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

ErickCerPa

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Pasar Archivo Txt A Una Base De Datos
« Respuesta #1 en: Domingo 1 de Agosto de 2004, 05:32 »
0
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:

aguilot_21

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Re: Pasar Archivo Txt A Una Base De Datos
« Respuesta #2 en: Jueves 14 de Julio de 2005, 15:45 »
0
Para hacerlo sin el memo como se leeria??

juanma

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Pasar Archivo Txt A Una Base De Datos
« Respuesta #3 en: Lunes 25 de Julio de 2005, 18:33 »
0
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.

juanma

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Pasar Archivo Txt A Una Base De Datos
« Respuesta #4 en: Lunes 25 de Julio de 2005, 19:06 »
0
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

slau

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Pasar Archivo Txt A Una Base De Datos
« Respuesta #5 en: Jueves 26 de Enero de 2006, 13:29 »
0
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: