Hola John! Lo que debes hacer es, antes que nada, asignar a una variable del tipo de archivo que manejes su correspondiente nombre físico en disco...
Los archivos pueden ser File, File of TIPO_DATO (que puede ser un tipo predefinido o definido por el usuario), o Text... por ahi olvido alguno...
Supongamos que declaramos un tipo registro:
TYPE
TPersona = record
nombre : string;
edad : byte;
end;
{y ahora declaramos el tipo de archivo}
TArchivo = File of TPersona;
A continuación te muestro un código que guarda 10 registros en el archivo:
VAR
arch : TArchivo; {declaro la variable del tipo TArchivo recién definido}
i : 1..10;
persona : TPersona;
BEGIN
{puedes poner cualquier extensión, e incluso obviarla}
Assign( arch, 'C:\personas.dat' );
ReWrite( arch ); {creamos el archivo si no existe, sino lo reescribimos}
for i:=1 to 10 do
begin
Write( 'Nombre: ' ); Readln( persona.nombre );
Write( 'Edad: '); Readln( persona.edad );
Write( arch, persona ); {guardamos el registro en el archivo}
end;
Close( arch );
END.
Los métodos que te serán de utilidad son:
ASSIGN ( NombreLogico, NombreFisico);
{fundamental para poder trabajar con archivos}
REWRITE ( NombreLogico ); {lo crea si no existe, sino lo reescribe}
RESET ( NombreLogico, [Tamaño] ); {sitúa el puntero en el primer registro del archivo. Si definimos el valor de Tamaño (opcional) el tamaño de los registros leídos será de dicho valor. Cuando abrimos un archivo de algun tipo, como por ejemplo nuestro registro, Tamaño traerá por defecto el tamaño del registro TPersona}
APPEND ( NombreLogico );
{abre un archivo de texto para escritura, sitúa el puntero al final}
SEEK ( NombreLogico, Posicion );
{sitúa el puntero en la posición indicada por Posicion, teniendo en cuenta siempre que comienza con el índice 0}
CLOSE ( NombreLogico ); {cierra el archivo}
WRITE, WRITELN, READ, READLN ( NombreLogico, Variable );
{estas instrucciones, pasándole como primer parámetro el nombre lógico del archivo, efectuan lo mismo que en pantalla pero en el archivo... WriteLn y ReadLn se utilizan para archivos de texto... para otros archivos no hacen falta ya que al ejecutar la instrucción, el puntero avanza una posición automáticamente. Variable debe ser del tipo de datos del que se declaró al archivo}
FILEPOS ( NombreLogico ); {devuelve la posición donde está situado el puntero del archivo pasado como parámetro}
FILESIZE ( NombreLogico ); {devuelve el tamaño, o la cantidad actual de registros en el archivo}
Posiblemente me esté olvidando de alguno, pero éstos te servirán para manejarte sin problemas... En la ayuda del Turbo Pascal, si entiendes inglés, encontrarás más ayuda, y seguramente en Internet hay muchos tutoriales acerca del tema. Un abrazo!