PDA

Ver la Versión Completa : Una de ficheros...


armadillo
28-02-2007, 20:35:07
Hola Lista...
Estoy haciendo un trabajo en donde necesito trabajar con
Archivos/Ficheros de tipo, en Delphi/pascal.
Les pongo un ejemplo de la declaracion del registro y el fichero:

(Esto es solo un ejemplo ilustrativo)

Type Cliente = record
Cod : string[10];
Nombre : string[40];
Direccion: string[40];
Telefono : string[10];
Saldo : real;
End;

Var
Fich_cliente : File Of Cliente;

Bien hasta aqui todo correcto, hago el codigo correspondiente para hacer un pequeño y simple ABM (Altas, Bajas y Modificaciones) de este fichero, y todo correcto. Si edito el fichero generado (me refiero a editarlo con el edit, por decir algun editor), me encuentro que desde el primer byte ya empieza a grabar reg x reg, perfecto!!! como imaginaba que haria...
Mi problema es el siguiente; Me gustaria que en el fichero generado, yo pueda reservar un encabezado, unos 1024Bytes (Por decir algo), y asi en este espacio guardar informacion relevante al fichero (Version del fichero, nombre, estructura,... etc).

Pregunto:

¿Como hago para que los registros empiecen a guardarce a partir del byte 1024?

¿Y como le digo a Pascal que empiece a leer registros en ese fichero a partir del Byte 1024?

Espero puedan darme una mano, quizas exista algun componente para tal fin que me puedan recomendar, o hacerme alguna referencia a algun link que hable del tema...

Desde muchas gracias!!!!

seoane
28-02-2007, 20:42:17
Creo que en este caso lo mas adecuado es utilizar archivos sin tipo, no supondría mayor dificultad, y te permitiría hacer lo que tu quieres.

joHn je@N
01-03-2007, 11:07:02
Si la información que deseas guardar no es tan reelevante o quieres, por asi decirlo, nada mas por que asi lo quieres:D pues puedes guardar esa informacion en el primer registro, utilizando los datos String de tu tipo. Se que eso es trampa y seria complicado porque necesitarias validar en la ejecucion de tu programa, que no se meta con ese registro porque no tendría información "coherente".
Otra posibilidad sería asociar otro archivo al tuyo.
Es decir otro archivo con el mismo nombre pero diferente extension (por ejemplo) y de el extraes la información de la version del archivo de datos que usas. asi solucionarías tu problema y además sin tantos problemas.
jejejeje pero, la decisión es tuya. Espero encuentres tu solución apropiada y con gran exito.

SALUDOS

Lepe
01-03-2007, 12:28:38
¿archivos sin tipo?...umm no sé.

Este hilo (http://www.clubdelphi.com/foros/showthread.php?t=2832&highlight=TfileStream)de seoane, muestra como grabar una cabecera y después 3 imágenes, se podría asemejar a lo que pides, primero una cabecera y después X tipos Record.

Saludos

armadillo
01-03-2007, 19:01:23
Hola!!
Gracias a todos por sus respuestas, habia pensado seriamente el uso de ficheros sin tipo, y para hacer lo que queria debia leerlos byte a byte, ya que si usaba bloques mas grandes de byte, no me iba a concordar el tamaño del encabezado con el del registro, asi que la unica solucion que veia era hacerlo byte a byte....

Bien, pero por suerte un colega de otro foro e dio una idea mas "practica" o "util" y simple, a mi pensar. que es algo parecido a lo que me decia john, en este foro, cosa que tambien pense en intentarlo, pero me veia limitado al tamaño y a los campos del registro. Lo que me dece este colega Adrian, es el de usar, tambien un registro como cabecera, pero con el formato y tamaño que yo quiera, y luego a partir de este se van agregando el resto de los registros.
A continuacion posteo la explicacion y el ejemplo de este colega: http://es.groups.yahoo.com/group/lDelphi/message/31791 :)

Espero le pueda servir de ayuda y que sea util a alguien en el futuro..

Gracias nuevamente