178 Estructuras de datos: archivos *, #, etc. Esta función se utiliza en la lectura de archivos secuenciales. En escritura, al cerrar el archivo, el procesador coloca la marca EOF. Reiteramos, en los archivos secuenciales, para acceder a un registro, se debe pasar por los anteriores, no se puede acceder directamente a un registro dado. Leer o escribir en un archivo secuencial significa siempre “en el registro siguiente” (o en el primero cuando se abre). b) Organización directa Sabemos que en este tipo de organización se accede al registro sin necesidad de pasar por los registros que le anteceden, ya que el procesador junto a su sistema operativo, los ubica en direcciones de disco o memoria que obtiene a través de un cálculo. Si todos los registros tienen el mismo tamaño y están almacenados consecutivamente, conociendo el tamaño de cada uno, le es simple al procesador localizar el registro número N, con independencia de los demás. Entonces se hace necesario informar al compilador cómo son los registros, pues ya dijimos que en un archivo directo son todos del mismo tipo. Esto se efectúa habitualmente al abrir el archivo. No es necesario, en cambio, especificar el modo de habilitación, porque los archivos directos se abren siempre como entrada-salida. Si bien la sintaxis de las declaraciones y operaciones varía considerablemente de un lenguaje a otro, es esencial que en cada operación de lectura o escritura se indique específicamente el número relativo del registro en el que se va a leer o escribir. Aquí ya no hay “registro siguiente”. El ejemplo que sigue busca dar una idea de cómo se trabaja con archivos directos, procurando no atarse a formas rígidas de sintaxis. Sólo puede emplearse con soportes direccionales. El procesador debe conocer o calcular la dirección de cada registro a partir de su número relativo (1, 2, 3,..), para poder posicionarse directamente en él. c) Organización indexada Consideremos un archivo de organización directa cuyos registros, todos de la misma forma (p. ej. el tipo alum declarado anteriormente), contienen campos referidos a alumnos de una asignatura: legajo apeynom notas domicilio G2015 GARCIA ALBERTO 8 10 6 8 7 JUJUY 1678 ROSARIO P2436 PEREZ JUAN 73856 ALSINA 380 PERGAMINO R3118 RODRIGUEZ ANA 9 9 9 7 10 PASCO 1220 ROSARIO L3223 LOPEZ JOSE 55672 SALTA 927 PARANA Cada registro está representado por una línea, y al procesar el archivo podemos acceder di- rectamente a él, sin pasar por los anteriores, si conocemos su posición, número de orden o número relativo. Llamamos campo clave a un campo que toma valores distintos en cada uno de los registros del archivo. En este caso, el legajo es seguro un campo clave, pues cada alumno aparece una sola