Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 03-04-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Hola.

Primeramente, si el archivo de texto no tiene formato (es decir, del que se puede abrir con el bloc de notas) pues entonces mejor ábrelo con un TMemo, o incluso si no se va a mostrar al usuario, en un objeto TStrings creado por ti mismo.

En cuanto a cortar las cadenas, tan sólo tendrías que ir recorriendo línea por línea en un bucle, coger las distintas partículas de texto mediante la función Copy (ya que has dicho que tienen longitud fija, y almacenarlo en una base de datos. Quedaría algo así:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
const
  AnchoCodigo = 5;
  AnchoApellido = 25;
  //...
  //Aquí declara todas las constantes con el ancho que tenga cada campo
  //...
var
  S: TStrings; //Donde se almacenará el texto
  Codigo, Apellido1, Apellido2, Nombre, Ciudad, CodPostal: String;
  N: Integer;
begin
  //Edit1 almacena el nombre del archivo a leer
  S:=TStringList.Create;
  S.LoadFromFile(Edit1.Text);
  for n:=0 to S.Count-1 do
    begin
    Codigo:=Copy(S[n], 0, AnchoCodigo);
    Apellido1:=Copy(S[n], AnchoCodigo+1, AnchoApellido);
    Apellido2:=Copy(S[n], AnchoCodigo+AnchoApellido+2, AnchoApellido);
    Nombre:=Copy(S[n], AnchoCodigo+AnchoApellido+AnchoApellido+3, AnchoNombre);
    //... y así con todos los campos

    //y ahora se añaden los datos
    Tabla.Insert;
    TablaCodigo.Value:=Limpiar(Codigo);
    TablaApellido1.Value:=Limpiar(Apellido1);
    TablaApellido2.Value:=Limpiar(Apellido2);
    TablaNombre.Value:=Limpiar(Nombre);
    //... y con el resto igual

    Tabla.Post;
    end;
  S.Free;
end;

La función Limpiar tendrás que declararla a parte. La he puesto porque al coger los campos con la función Copy con un ancho fijo, pues entonces al final de todos los campos tendrás espacios. Por ejemplo, si el ancho del campo nombre es 10 y tienes "Miguel", pues el dato que se guardará será "Miguel ", con cuatro espacios. La función Limpiar debería dejarlo en "Miguel". Pero eso ya te lo dejo a ti


Salu2.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Fichero de Texto Enorme muli Varios 8 19-02-2008 02:23:35
verificar fichero de texto arley_molina Varios 2 12-06-2006 20:52:40
Cortar fichero de audio FDB Varios 0 27-04-2005 19:15:37
Ayuda con fichero de texto jadelphi Varios 4 07-10-2004 09:43:14
como cortar texto de un edit superhopi Impresión 1 10-06-2003 13:03:03


La franja horaria es GMT +2. Ahora son las 23:21:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi