COMO EL READ USA LOS FORMATOS 1. Cuando las variables del READ terminan antes del fin del FORMAT cesa el uso del mismo El próximo READ comienza con un nuevo registro Ej: i →1 k→ 6 READ ( * , 30) i, j READ ( * , 30) k, l, m 30 FORMAT(5I5) 5 1 0 1 5 2 0 2 5 1 2 3 4 5 6 7 8 9 1 0 j → 2 l → 7 m →8 2.Cuando las variables del READ son mas que los descriptores que los asignados en el FORMAT almacena los asinados en la memoria y luego retorna al paréntesis abierto que se encuentra a la derecha y no está precedido por un factor de repetición Ej: READ ( *, 40) i, j, k, l, m 40 FORMAT( I5, (T6, 2I5)) Usando el archivo anterior, i →1 l → 7 5 1 0 1 5 2 0 2 5 1 2 3 4 5 6 7 8 9 1 0 j → 2 m →8 k→ 3 Ejemplo de lectura e impresión Se tiene un archivo adjunto cuyas características son: La primera línea contiene un entero que indica el número de datos siguiente. En las líneas subsiguientes hay 5 enteros de formato I5 salvo en la última línea que puede contener menos valores. 22 8 23 27 24 40 45 43 38 26 16 8 8 6 3 5 4 0 2 0 1 2 1 Escribir un programa FORTRAN que imprima tantos asteriscos como indica cada entero de acuerdo con la siguiente forma: 1 1 2 2 3 3 4 4 5 5 6 ....5....0....5....0....5....0....5....0....5....0....5....0 8 |******** ( 8) 23 |*********************** (23) 27 |*************************** (27) 24 |************************ (24) 40 |**************************************** (40) 45 |********************************************* (45) 43 |******************************************* (43) 38 |************************************** (38) 26 |************************** (26) 16 |**************** (16) 8 |******** ( 8) 8 |******** ( 8) 6 |****** ( 6) 3 |*** ( 3) 5 |***** ( 5) 4 |**** ( 4) 0 | ( 0) 2 |** ( 2) 0 | ( 0) 1 |* ( 1) 2 |** ( 2) 1 |* ( 1) CLAUSULAS DE LA SENTENCIA OPEN Clausula Entrada y Salida Propósito Valores posibles [UNIT=] exp_entera Entrada Asocia la entrada/salida a un file Entero. Depende del procesador FILE=exp_character Entrada Nombre del archivo Characrer STATUS= exp_character Entrada Especifica el ‘estado’ del file a ser abierto. ‘OLD’, ‘NEW’, ‘SCRACH’, ‘REPLACE’, ‘UNKNOWN’ IOSTAT= exp_entera Salida Estado de entradas salidas al fin de la operación Valor entero 0 sin errores Otros errores depende del procesador ACCESS= exp_character Entrada Especifica si el acceso es secuencial o directo ‘SEQUENTIAL’, ‘DIRECT’ FORM=exp_character Entrada Especifica si los datos están formateados o no formateados ‘FORMATED’, ‘UNFORMATED’ Clausula Entrada y Salida Propósito Valores posibles ACTION=exp_character Entrada Especifica si el file es de sólo lectura, sólo escritura o lectura/escritura ‘READ’, ‘WRITE’, ‘READWRITE’ RECL= exp_character Entrada Para files de acceso directo. Si es formateado número de caracteres en cada record si es unformatted depende del procesador Entero positivo Depende del procesador POSITION=exp_character Entrada Indica la posición en el file luego de ser abierto ‘REWIND’, ‘APPEND’, ‘ASIS’ DELIM=exp_character Entrada Delimitador de una lista de caracteres ‘APOSTROPHE’, ‘QUOTE’, ‘NONE’ PAD=exp_character Entrada Especifica si los records formateados de entrada ‘YES’, ‘NO’ FORM FORMATTED Se llaman archivos formateados aquellos en los que usamos los descriptores para convertir los datos en una forma usable por la computadora cuando los leemos o los escribimos. También se da el proceso contrario cuando los resultados del programa son trasladados de la memoria de la maquina a lenguaje que podamos leer o escribir. UNFORMATTED Los archivos unformatted son una copia de lo almacenado en la memoria de la computadora. Son mucho menores que los files formateados pero la información está codificada en sistemas de bits y es difícil de examinar. Por su codificación es difícil de trasladar archivos entre distintos tipos de computadoras. Por default , los archivos secuenciales son archivos ‘FORMATTED’ Si se usa acceso directo → ‘UNFORMATTED’ RECL Especifica la longitud de cada record en un archivo de acceso directo. POSITION ‘REWIND’ → apunta al primer record del file ‘APPEND’ → apunta al último record del file antes de l marca de end of file ‘ASIS’ → posición no especificada i depende del procesador.