FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Levantar un archivo txt y salvarlo en una tabla IB
Hola Foro
Tengo un archivo txt con un diseño de registro, y quisiera saber la forma de pasarlo con un select o la forma que sea a una tabla de Interbases. Saludos y gracias por su atencion |
#2
|
|||
|
|||
Levantar un archivo txt para una tabla IB
Hola
En este caso el fichero txt debe tener algun formato para poder leerlo y luego irlo insertando en la BD. A continuacion te muestro un codigo que te puede servir aunque te recomiendo mejor si puedes llevar los datos a Excel porque es mas eficiente. Te lo digo por experiencia propia. Codigo procedure TFormMenu.Clientes1Click(Sender: TObject); var s, v, nombre, codigo: string; x, l: Integer; begin if OpenDialog.Execute then begin s:= ExtractFileName(OpenDialog.FileName); AssignFile(F, s); Reset(F); while not Eof(F) do begin Readln(f, v); l:= length(v); x:= pos(';', v); nombre:= copy(v, 1, x-1); v:= copy(v, x+1, l); x:= pos(';', v); l:= length(v); codigo:= copy(v, 1, x-1); with InsertarClientes do begin Close; Parameters.ParamByName(@nombre').Value:= nombre; Parameters.ParamByName(@codigo).Value:= codigo; Prepared:= True; ExecProc; end; end; CloseFile(F); ShowMessage(' El lote de clientes ha sido importado exitosamente'); end; end; Donde F:Text; InsertarClientes es un procedimiento almacenado Los delimitadores del fichero texto en este caso es ; Espero te sirva Saludos Luis Garcia |
#3
|
||||
|
||||
mira....
Podrías señalar como es la estructura del archivo de texto, ó bien pon un pedazo del mismo para verlo.....
Para un archivo de texto es más sencillo pasarlo a interbase por medio de un table, dataset, query, etc. teniedo una estructura delimitada por comas ó por cualquier caracter. Saludos. |
#4
|
|||
|
|||
Gracias
LGarcia y Alfredo por su colaboracion, voy a probar sus consejos, saludos tulio |
#5
|
|||
|
|||
Alfredo
la estructura del archivo es asi 15487 1033 JUAN E1 15490 1050 PEDRO S1 15500 1070 ANTONIO E1 SALUDOS tulio |
#6
|
|||
|
|||
tabla externa
otra forma es crear una tabla externa apuntando a tu archivo txt. Desde firebir la veras como una tabla mas..
|
#7
|
|||
|
|||
tJOse
Como se crea una tabla externa apuntando a un txt saludos y gracias por tu respuesta |
#8
|
||||
|
||||
Lo que te trata de decir Jose es, que debes de crear una Tabla Nueva en tu Base de Datos y por medio de una Aplicación en Delphi integrar los datos de tu archivo de texto a la tabla anteriormente mencionada, para eso puedes trabajar como te mencione en el primer mensaje por medio de un dataset,table ó query,
sólo ocuparías una función para interpretar los datos que tienes en el archivo de texto ten pongo la sintáxis: 1.-Lees archivo de texto, asignas primera linea a variable de tipo string 2.-Lees caracter por caracter de variable String hasta que sea diferente de espacios en blanco, Si se topa con espacio en blanco tomar dicho valor y asignarlo a su respectivo campo y así repites esto por cada linea que se encuentre del archivo... hasta que sea fin de archivo. Espero te haya ayudado un poco Saludos. |
#9
|
|||
|
|||
Exelente AgaG4
es lo que yo pensaba, Muchas gracias por su colaboracion a todos saludos tulio. |
#10
|
||||
|
||||
Cita:
Cita:
Cita:
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#11
|
||||
|
||||
Pues....
El Sr. Tulio tiene la última palabra...
Saludos |
#12
|
|||
|
|||
Como bien dice jachguate, me referia la caracteristica de IB/FB.
Ejemplo: create table ClientesEx external file 'rutaarchivo.txt'( Id char(10), Nombre char(50), ... ... retorno char(n) ); donde n = 2 en windows y n = 1 en linux. archivo.txt debe ser texto con ancho fijo. Habras notado que en la definicion use en dodos los casos char como tipo de datos. Luego si los quiere copiar a tu tabla clientes nativa FB haces los siguiente: insert into Clientes (Id, Nombre, ...) select * from ClientesEx; En FB 1.0 esto se hace directamente. En FB 1.5 hay que definir en el archivo de configuracion del servidor el tipo de permisos para archivos externos, hay varias opciones, tando de permisos como de ubicacion predeterminada de estos archivos externos. Perdon por el codigo sin fromato. No se como hacerlo. Saludos TJose |
#13
|
|||
|
|||
Gracias
tjose te cuento que al problema lo solucione como decia lgarcia, pero me gusto mucho lo que me indicaste que no lo sabia Muchas gracias a Lgarcia, tJose y Agag4 por todo su apoyo Problema solucionado |
#14
|
||||
|
||||
oki
Gracias TJose, la verdad yo no sabia que podrías generar una tabla externa en firebird.... Gracias por el ejemplo, de hecho eso andaba buscando hace rato pero lo que hacía era lo que le plantie a tulio... Pero que bueno que hay más opciones..
Saludos. |
#15
|
||||
|
||||
Cita:
Pues.... este.... de nada Gracias a vos por acordarte de todos...
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|