FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Separar en campos un archivo de texto
Buenas
Antes que nada pido disculpas si este hilo está mal posteado pero me pareció mas una consulta para la sección Varios que para bases de datos. Me pasaron un archivo .txt el cual tiene tres campo diferentes pero el problema es que no tiene separación, ni coma, ni pto.y coma, nada. Lo único que se es que los 1ros. tres caracteres corresponden al código, los siguientes 20 al nombre y los restantes 15 al país. Ejemplo de 1 registro: 012Gustavo Daniel LopezArgentina Lo que quiero hacer es llevar cada registro a una tabla Pradox pero separados en sus repsectivos campos: "012", "Gustavo Daniel Lopez", "Argentina". La tabla sé como armarla, mi mayor duda está en como separo por campos. Si alguien me puede dar una mano se lo agradeceré. Aclaro que trabajo con Delphi 4. Un abrazo. Walter |
#2
|
||||
|
||||
A falta de una solución más inteligente, lo que he hecho en una situación casi igual es leer línea a línea el archivo, con un TStringList, y usar la función Copy en cada línea para extraer los campos:
// Saludos |
#3
|
|||
|
|||
A continuación te muestro un procedimiento en el cual yo leo secuencialmente un archivo de texto y extraigo la información que necesito a cada una de las variables..:
procedure TForm1.Traer_Morcar_1; var F1: TextFile; cadena,nro_oblig,dias_mora,saldo_capi: string; Pasados, Leidos: integer; begin if (Edit4.Text <> '') then begin Leidos:=0; Pasados:=0; AssignFile(F1, Edit4.text); Reset(F1); while not Eof(F1) do begin Readln(F1, cadena); nro_oblig:=copy(cadena,1,12); dias_mora:=copy(cadena,137,4); saldo_capi:=copy(cadena,227,14); if (dias_mora <> ' ') and (strtoInt(dias_mora) <=90 )then begin Importa_Obligaciones_1(nro_oblig,dias_mora,saldo_capi); inc(Pasados); end; Leidos:=Leidos+1; ProgressBar2.Position:=Leidos; StatusBar1.Panels[4].Text:= InttoStr(Leidos); Application.ProcessMessages; end; CloseFile(F1); StaticText3.Caption:=InttoStr(Pasados); end; end;
__________________
Ing. LUIS FERNANDO ORJUELA BOGOTA - COLOMBIA |
#4
|
|||
|
|||
Excelente!!!
Gracias por las respuestas, es lo que necesitaba. Un abrazo. |
|
|
|