Simplemente poner un archivo es un secuencia binaria de algún tipo En Delphi, hay tres clases de archivo: mecanografiado, texto y sin tipo. Los archivos mecanografiados son archivos que contienen datos de un tipo particular, como Doble, Entero o Tipo de registro personalizado previamente definido. Los archivos de texto contienen caracteres ASCII legibles. Los archivos sin tipo se utilizan cuando queremos imponer la menor estructura posible en un archivo.
Archivos mecanografiados
Mientras que los archivos de texto consisten en líneas terminadas con un CR / LF (#13#10) combinación, los archivos escritos consisten en datos tomados de un tipo particular de estructura de datos.
Por ejemplo, la siguiente declaración crea un tipo de registro llamado TMember y una matriz de variables de registro TMember.
tipo
TMember = grabar
Nombre: cuerda[50];
correo electrónico:
cuerda[30];
Publicaciones: LongInt;
final;
var Miembros: formación[1..50] de TMember;
Antes de poder escribir la información en el disco, tenemos que declarar una variable de un tipo de archivo. La siguiente línea de código declara una variable de archivo F.
var F: archivo de TMember;
Nota: Para crear un archivo escrito en Delphi, utilizamos lo siguiente sintaxis:
var SomeTypedFile: archivo de Algún tipo
El tipo base (SomeType) para un archivo puede ser un tipo escalar (como Double), un tipo de matriz o un tipo de registro. No debe ser una cadena larga, matriz dinámica, clase, objeto o puntero.
Para comenzar a trabajar con archivos de Delphi, tenemos que vincular un archivo en un disco a una variable de archivo en nuestro programa. Para crear este enlace, debemos usar AssignFile procedimiento para asociar un archivo en un disco con una variable de archivo.
AssignFile (F, 'Members.dat')
Una vez que se establece la asociación con un archivo externo, la variable de archivo F debe 'abrirse' para prepararla para leer y escribir. Llamamos al procedimiento Restablecer para abrir un archivo existente o Reescribir para crear un nuevo archivo. Cuando un programa completa el procesamiento de un archivo, el archivo debe cerrarse utilizando el procedimiento Cerrar archivo. Después de cerrar un archivo, se actualiza su archivo externo asociado. La variable de archivo se puede asociar con otro archivo externo.
En general, siempre debemos usar manejo de excepciones; Pueden surgir muchos errores al trabajar con archivos. Por ejemplo: si llamamos a CloseFile para un archivo que ya está cerrado, Delphi informa un error de E / S. Por otro lado, si intentamos cerrar un archivo pero aún no hemos llamado AssignFile, los resultados son impredecibles.
Escribir en un archivo
Supongamos que hemos llenado una serie de miembros de Delphi con sus nombres, correos electrónicos y número de publicaciones y queremos almacenar esta información en un archivo en el disco. El siguiente código hará el trabajo:
var
F: archivo de TMember;
i: entero;
empezar
AssignFile (F, 'members.dat');
Reescribir (F);
tratar
para j: = 1 a 50 hacer
Escribir (F, Miembros [j]);
finalmente
Cerrar archivo (F);
final;final;
Leer de un archivo
Para recuperar toda la información del archivo 'members.dat', usaríamos lo siguiente código:
var
Miembro: TMember
F: archivo de TMember;empezar
AssignFile (F, 'members.dat');
Restablecer (F);
tratar
mientras no Eof (F) empieza
Leer (F, miembro);
{DoSomethingWithMember;}
final;
finalmente
Cerrar archivo (F);
final;final;
Nota: Eof es la función de verificación EndOfFile. Usamos esta función para asegurarnos de que no estamos intentando leer más allá del final del archivo (más allá del último registro almacenado).
Buscando y Posicionando
Normalmente se accede a los archivos de forma secuencial. Cuando se lee un archivo usando el procedimiento estándar Lectura o escritura usando el procedimiento estándar Escribir, la posición actual del archivo se mueve al siguiente componente de archivo ordenado numéricamente (siguiente registro). También se puede acceder a los archivos mecanografiados aleatoriamente a través del procedimiento estándar Buscar, que mueve la posición actual del archivo a un componente específico. los FilePos y Tamaño del archivo Las funciones se pueden utilizar para determinar la posición actual del archivo y el tamaño del archivo actual.
{volver al principio: el primer registro}
Buscar (F, 0);
{ir al quinto registro}
Buscar (F, 5);
{Salta al final - "después" del último registro}
Buscar (F, Tamaño de archivo (F));
Cambiar y actualizar
Acaba de aprender a escribir y leer toda la gama de miembros, pero ¿qué pasa si todo lo que quiere hacer es buscar al décimo miembro y cambiar el correo electrónico? El siguiente procedimiento hace exactamente eso:
procedimiento Cambiar e-mail(const RecN: entero; const Nuevo correo electrónico: cuerda) ;var DummyMember: TMember;empezar
{asignar, abrir, bloque de manejo de excepciones}
Buscar (F, RecN);
Leer (F, DummyMember);
DummyMember. Correo electrónico: = NewEMail;
{leer pasa al siguiente registro, tenemos que
regrese al registro original, luego escriba}
Buscar (F, RecN);
Escribir (F, DummyMember);
{cerrar el archivo}final;
Completando la tarea
Eso es todo, ahora tiene todo lo que necesita para cumplir su tarea. Puede escribir la información de los miembros en el disco, puede volver a leerla e incluso puede cambiar algunos de los datos (correo electrónico, por ejemplo) en el "medio" del archivo.
Lo importante es que este archivo no es un Archivo ASCIIasí es como se ve en Bloc (solo un registro):
.Delphi Guide g Ò5 · ¿ì. 5.. B V.Lƒ, „¨[email protected]Ï.. ç.ç.ï..