Professional Documents
Culture Documents
Clases de archivos
Definicin Informal: Un archivo lo componen una coleccin de valores todos del mismo tipo. (En esto se parecen a los arrays) El tipo archivo es un tipo compuesto estructurado. Cul es su estructura? Archivos de acceso secuencial Para llegar al valor n-simo hay que "leer" los (n-1) valores que le preceden Archivos de acceso directo Se puede llegar al valor n-simo directamente
Ao 2010
Clases de archivos
La necesidad de que un archivo se almacene en un medio de almacenamiento masivo "EXTERNO" va a condicionar algunas de las cosas que podremos hacer con los archivos Las operaciones mnimas que podramos exigir sobre los archivos son Leer su contenido Escribir su contenido Cambiar su contenido Como mnimo, debemos aspirar a poder manipular archivos de tantos tipos de datos, como podamos definir en nuestros programas. A la vista, podra parecer los archivos son "una Sin embargo no es as. Cul puede ser la razn? especie de arrays" que residen en un perifrico.
Algunas preguntas
Tiene sentido declarar tipos nominales de archivos, al igual que declaramos tipos de registros o de arrays? Tiene sentido declarar variables de un tipo archivo? En caso de poder definir variables de tipo archivo, cul debe ser el valor que almacenan estas? El nombre por el que se le conoce? El contenido del mismo? Tiene sentido la operacin de "asignacin" entre variables de tipo archivo? Tiene sentido la existencia de parmetros formales y actuales de tipo archivo?
Ao 2010
Ao 2010
Vinculado a cualquier archivo existe un "puntero virtual" que me dice en qu punto del archivo estoy leyendo / escribiendo
Vinculacin archivos
Turbo Pascal realiza esta operacin de modo diferente al estandar. Proc_vinculacion::= "Assign" "(var_archivo "," nombre_archivo_real ")" ";" nombre_archivo_real::= Variable_string | constante_string Tanto si se utiliza una variable como una constante para identificar el fichero real a abrir, salvo que se especifique una ruta ,(ms-dos) el archivo se buscar en el directorio en que reside el programa que lo utiliza.
Ao 2010
Apertura de archivos
Apertura para lectura Aper_lectura::= "RESET" "(" var_archivo ")" ";" Si abrimos para lectura un archivo no vinculado se producir un error de ejecucin. El puntero virtual se coloca en el primer carcter del archivo Apertura para escritura Aper_escritura::= "REWRITE" "(" var-archivo ")" ";" Si abrimos para escritura un archivo pre-existente su contenido se borrar. Si el archivo no existiese se crear El puntero virtual se coloca en el primer carcter del archivo Apertura para aadir informacin Aper_aadir::= "APPEND" "(" var_archivo ")" ";" El puntero virtual se coloca en la marca de fin del archivo
Apertura de archivos
Antes de terminar un programa, se debe cerrar el archivo Cierre_arch::= "CLOSE" "(" var_archivo ")" ";" El cierre del archivo escribe al final de ste una marca que indica que la informacin del archivo llega hasta ah. (tamao de bloque fsico/lgico) Un mismo archivo puede abrirse y cerrarse tantas veces como queramos en un mismo programa, en el modo que necesitemos cada vez.
Ao 2010
Ao 2010
Ejemplos (2) WHILE not Eof(entrada) do begin while not Eoln(entrada) do begin Read(entrada, ch); Write(salida, ch); end; {while} ReadLn(entrada); End; {while} ..... Close(entrada); Close(salida); Ejemplos (3) WHILE not Eof(entrada) do Begin while not Eoln(entrada) do begin Read(entrada, ch); Write(salida, ch); end; {while} Read(entrada, ch); Read(entrada, ch); End; {while} ..... Close(entrada); Close(salida);
Ao 2010
Ao 2010