Supongamos:
type Datos=record
Dato1:integer;
Dato2:string[50];
end;
type TArchivo=file of Datos;
var MiArchivo:TArchivo;
Info:Datos;
Lo asignás mediante Assign(MiArchivo,"UnNombre.dat").
Lo abrís con Reset(MiArchivo) si es que existe, o con Rewrite(MiArchivo) si es que no existe o querés inicializarlo vacío (lo borra si existe y crea otro).
Escribís usando Write(MiArchivo,Info).
Leés usando Read(MiArchivo,Info).
Cerrás usando close(MiArchivo).
Por ejemplo, supongamos leer y mostrar:
assign(MiArchivo,"pepe.dat");reset(MiArchivo);
while not eof(MiArchivo) do
read(MiArchivo,Info);write(Info.Dato1);writeln(Info.Dato2);
end;
Close(MiArchivo),