Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Traspaso de datos de archivos dat (visual basic) creo a paradox (https://www.clubdelphi.com/foros/showthread.php?t=34475)

Vero_rm80 10-08-2006 19:19:35

Traspaso de datos de archivos dat (visual basic) creo a paradox
 
Hola, no soy una programadora demasiado experta y para colmo tengo que hacer un traspaso de datos de archivos .dat (creo que generados con visual basic) a una aplicacion desarrolada en delfi con motor de datos paradox( .db)
me gustaria que me hecharais una mano.
ahh otra cosa el archivo lo puedo abrir con el bloq de notas y no veo claramente los datos lo he intentado hacer como si fuera un archivo de texto pero las lineas no tienen relacion.
espero haberme esplica<do bien y muchiiiiiiiiisimas gracias de antemano:D

egostar 10-08-2006 19:37:02

El problema es que es un archivo tipeado, si no conoces la estructura de ese archivo es dificil que puedas leerlo y obtener la información del mismo, por eso es que veras caracteres "raros" al abrirlo con un editor y no como un archivo de texto que puedes leer sin problemas.

Los archivos tipeados no estan compuestos de lineas de caracteres como los secuenciales, sino que tienen una estructura fija y estan determinados por los datos que contiene que pueden ser enteros, reales, string.

Mi sugerencia es que consigas la estructura del archivo y si tienes mas dudas entonces si en este foro te podrán ayudar.

Saludos

Vero_rm80 10-08-2006 19:47:51

muchisimas gracias egostar :p ,
ahunque no me ha servido de mucho, la verdad es que no veo caracteres raros, veo algo similar a esto
" 11/10/200001 1 LAMO GONZALEZ JESUS COSIO ESCALANTE, 2, 1º 39500 - CABEZON DE LA SAL 942- Cantabria 13203952-C942/700-447 1 "
como puedes ver los datos son totalmente legibles pero no tienen lineas normales como cualquier archivo de texto, subo un ejemplo haber si alguien me puede hechar una mano, porque me he metido en un berenjenal.....

http://www.dantecantabri.com/01cliente0.dat

:o gracias por todo:o

roman 10-08-2006 19:52:04

No puedo bajar el ejemplo

// Saludos

Vero_rm80 10-08-2006 19:55:06

lo siento¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
 
:( ups ya lo siento:( , ya esta modificado.....
lo siento mucho
de todas formas repito el enlace

http://www.dantecantabria.com/01cliente0.dat
:p

Vero_rm80 11-08-2006 10:07:53

:confused: :confused: :confused: :confused: :confused: :confused: :confused:
son las 10 de la manaña y me sigo volviendo loca .............. ayuda porfi¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ :o

egostar 11-08-2006 16:59:05

Ten un poco de paciencia, de hecho ya baje el archivo y por lo que veo es un archivo con datos generales de ciertas personas, seguro alguien mas estará ahora tratando de darte una respuesta.

Saludos.

Vero_rm80 11-08-2006 17:18:53

:o si ya se que tengo que tener paciencia .... jejeje.

ahh otra cosa el archivo que he subido es el de clientes,

Y de verdad muchisimas gracias, sois unos soles

:p :p :p :p :p :p :p :p

egostar 11-08-2006 21:17:17

Hola Vero, una pregunta

Estuve checando el archivo que tienes y encontre algunos ENTER dentro del mismo, la pregunta es, ¿este archivo es el original? ¿no lo editaste y le diste ENTER en algunas partes del archivo?

Porque los ENTER que existen no nos dan una pauta para saber donde termina una linea, es decir, hay lineas de 58169, 27, 9, 57548 Caracteres entre otras lineas de caracteres.

Esto no tiene ningún sentido ni nos ayuda mucho.

Saludos.

AGAG4 15-08-2006 17:48:11

Checa Esto...
 
Es mejor que consigas la estructura del archivo, no batallarás nada....

Vero_rm80 28-08-2006 09:58:01

Hola de nuevo
 
hola a todos, muchas gracias por vuestras contestaciones, he estado de vacaciones y no he podido contentaros.
sobre lo de los intros ya me he dado cuenta y el archivo es el original, no esta modificado

Lepe 28-08-2006 14:36:48

Los intros no significan nada, bien puede ser el contenido de un Memo, ayudaría un poco ver los labels que tienen en el programa actual, ya que la cadena
Código:

942- Cantabria      13203952-C942/700-447                                                  1                  1  1                  1
No tenemos ni idea de como llamarle, es decir qué nombre ponerle cada uno de los "1" que aparecen.

Además por el nombre quizás pudieramos identificar cuantos caracteres lleva o incluso el tipo de datos, Boolean, entero o caracter.

En principio, si lleva un patrón:
- 20 espacios en blanco (la pregunta es POR QUÉ LLEVA ESOS ESPACIOS)
- fecha en formato dd/mm/yyyy
- 2 caracteres (01)
- 3 caracteres que guardan un número. No pondría el campo como integer, ya que según veo, está todo guardado como texto.
- 4 caracteres en blanco (que puede pertenecer al campo anterior o al nombre. En principio yo uniría este campo con el anterior, pero lo hago sin ton ni son).
- 40 caracteres para el apellido
- 20 para el nombre
- 40 letras para la direccion
- 30 para ¿el código postal y ciudad?
- 20 para la provincia (incluido el número Ej: "942 - Cantabria")

y el resto... pues es lo que decía, necesitamos saber, al menos, el nombre de los campos. Hasta el momento yo haría el registro como:
Código Delphi [-]
type Tdatos = record
  vacio : string[20];
  fecha: string[10];
  campo1:string[2];
  campo2:string[7]; 
  apellidos:string[40];
  nombre: string[20];
  direccion:string[40];
  cpCiudad:string[30];
  provincia:string[20];
end;

Se trataría de ir leyendo el archivo ese número fijo de caracteres. Hace tiempo que no lo uso, pero sería algo así como:
Código Delphi [-]
var F:TextFile;
     datos : Tdatos;
begin
AssignFile(F, 'ruta completa del archivo y extension');
read (f,datos.vacio,20); // el número es el ancho de cada campo
read(f,datos.fecha, 10);
read(f, datos.campo1, 2);
read(f, datos.campo2, 7);
....
CloseFile(F);

Pero vamos, si son pocos datos le dices que los meta de nuevo y te olvidas de armar este puzzle. Si necesitas implementarlo, danos toda la info que puedas sobre el programa, campos, labels, etc.

Saludos

Lepe 28-08-2006 14:46:34

Me ha faltado decir cómo he sacado la estructura. Creo que es lo más importante:

- Abro con el bloc de notas, Formato -> Ajuste de línea desactivado !!!
- Pulso la tecla SHIFT y le voy dando con el cursor derecho mientras cuento las veces que lo he pulsado.
- Paro de contar cuando encuentro un dato "nuevo".
- Contrasto esa longitud que acabo de contar con los demás Clientes. Para buscar el siguiente cliente busco la siguiente fecha en formato dd/mm/yyyy (solo hay una fecha con ese formato).

Hay editores como el JetEdit, o incluso abriendolo con delphi, que te dicen la columna en la que estas, y solo tienes que restar... pero eso es otra historia ;).

Edito: En realidad no hay "separador entre registros", simplemente escribe cada dato, uno detrás de otro, rellenando con espacios en blanco el ancho de cada campo.

Lo más dificil de detectar son los campos vacíos consecutivos, ya que si no tiene nada (solo espacios), pues no se sabe si son dos campos de longitud 20, o bien uno de 40.

Saludos


La franja horaria es GMT +2. Ahora son las 13:32:06.

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