Programación General > C++ Builder

 Pasar Archivo Txt A Una Base De Datos

(1/2) > >>

ppgizbo@yahoo.com.mx:
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:

ErickCerPa:
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 ---           TTable *Table1;         Table1=Clientes->ClientesT; //o como le quieras llamar//espero sepas por lo menos manejar tablas          Table1->Filtered=false;         Memo1->Lines->LoadFromFile("tu_archivo.TXT");       //el archivo txt que dices //limpiamos la tabla (opcional)         Table1->First();         while (Table1->Eof==false)            Table1->Delete();//terminamos de limpiar la tabla  //         Table1->Edit();          for (int i=0; i<=Memo1->Lines->Count-1; i++)            {              Table1->Append();               S=Memo1->Lines->Strings[i];              pos = S.Pos("|");              S2= S.SubString(1,pos-1);              S.Delete(1,pos);              Table1->FieldByName("Numero")->Value=S2.ToInt();               pos = S.Pos("|");              S2= S.SubString(1,pos-1);              S.Delete(1,pos);              Table1->FieldByName("Fecha")->Value=S2;               pos = S.Pos("|");              S2= S.SubString(1,pos-1);              S.Delete(1,pos);              Table1->FieldByName("Concepto")->Value=S2;               pos = S.Pos("|");              S2= S.SubString(1,pos-1);              S.Delete(1,pos);              Table1->FieldByName("Destino")->Value=S2;               pos = S.Pos("|");              S2= S.SubString(1,pos-1);              S.Delete(1,pos);              Table1->FieldByName("Otros")->Value=S2;               Table1->Post();            }//fin for  

Facil no cres

Si necesitas ayuda solo pon otro MSG

Saludos
y Mucha Mucha Suerte

Bytes :hola:

aguilot_21:
Para hacerlo sin el memo como se leeria??

juanma:
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:
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

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa