Programación Básica Archivos en Fortran Arturo Vega González [email protected] Division de Ciencias e Ingenierı́as Universidad de Guanajuato Campus León Sesión 11 Universidad de Guanajuato, DCI, Campus León 1 / 16 Programcaión Básica Archivos en Fortran Contenido 1 Ejemplos de Archivos en C 2 Archivos en Fortran Universidad de Guanajuato, DCI, Campus León 2 / 16 Programcaión Básica Archivos en Fortran Ejemplos de Archivos en C Ejemplo #i n c l u d e < s t d i o . h> #i n c l u d e < s t d l i b . h> i n t main ( ) { FILE ∗ a r c h i v o ; char c a r a c t e r ; a r c h i v o = fopen ( ” prueba . t x t ” , ” r ” ) ; i f ( a r c h i v o == NULL) { p r i n t f ( ” \ n E r r o r de a p e r t u r a d e l a r c h i v o . \n\n” ) ; } else { p r i n t f ( ” \ n E l c o n t e n i d o d e l a r c h i v o de p r u e b a e s \n\n” ) ; w h i l e ( f e o f ( a r c h i v o ) == 0 ) { caracter = fgetc ( archivo ); p r i n t f ( ”%c ” , c a r a c t e r ) ; } } fclose ( archivo ); return 0; } Universidad de Guanajuato, DCI, Campus León 3 / 16 Programcaión Básica Archivos en Fortran Ejemplos de Archivos en C Ejemplo #i n c l u d e < s t d i o . h> #i n c l u d e < s t d l i b . h> i n t main ( ) { FILE ∗ a r c h i v o ; char c a r a c t e r e s [ 1 0 0 ] ; a r c h i v o = fopen ( ” prueba . t x t ” , ” r ” ) ; i f ( a r c h i v o == NULL) exit (1); p r i n t f ( ” \ n E l c o n t e n i d o d e l a r c h i v o de p r u e b a e s \n\n” ) ; w h i l e ( f e o f ( a r c h i v o ) == 0 ) { fgets ( caracteres ,100 , archivo ) ; p r i n t f ( ”%s ” , c a r a c t e r e s ) ; } s y s t e m ( ”PAUSE” ) ; fclose ( archivo ); return 0; } Universidad de Guanajuato, DCI, Campus León 4 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Archivos en Fortran Al igual que en C Un archivo es un conjunto de información o datos que se encuentran almacenados en una memoria permanente, como un disco duro. Un archivo se define por su nombre y su extensión La extension del archivo nos indica parcialmente el tipo y contenido del archivo Los lenguajes de programación contienen funciones básicas para accesar y manipular archivos Universidad de Guanajuato, DCI, Campus León 5 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Comandos Comando open close read write rewind Backspace Descripción Apertura de un archivo. Asigna un numero de unidad para referir el archivo. Cierra un archivo. Requiere el numero de unidad para realizar el cierre del archivo Lectura de datos desde un archivo. Escritura de datos hacia el archivo. Posiciona el control de acceso del archivo al inicio del mismo. Retrocede el control de acceso al registro anterior. Universidad de Guanajuato, DCI, Campus León 6 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Ejemplo open ( u n i t =1, f i l e =’ Datos ’ ) read ( u n i t =1, FMT=100) X Con open se asigna la unidad 1 al archivo Datos, con read se lee un valor de la unidad 1 y formato 100. El valor leido se asigna a X Universidad de Guanajuato, DCI, Campus León 7 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran unidades predefinidas unidad 0 5 6 * Descripción Se predetermina como pantalla o como teclado. Se predetermina como teclado. Se predetermina como pantalla. Se predetermina como pantalla y teclado. Universidad de Guanajuato, DCI, Campus León 8 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Ejemplo . write (0 ,100) 100 format ( ‘dame un v a l o r de x ’ ) read ( 5 , 2 0 0 ) x 200 format ( f 5 . 1 ) write (6 ,300) x 300 format ( i 5 , f 5 . 1 , / ) . Universidad de Guanajuato, DCI, Campus León 9 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Open (Sintaxis) open ( [ u n i t =] u n i d a d [ , access=a c c e s o ] [ a c t i o n=a c c i ó n ] [ , blank= b l a n c o s ] [ , b l o c k s i z e= tamaño d e l b l o q u e ] [ , c a r r i a g e c o n t r o l= c o n t r o l de c a r r o ] [ , delim= lı́ m i t e ] [ , e r r=e r r o r ] [ , f i l e = a r c h i v o ] [ , form= forma ] [ , i o f o c u s= punto l ó g i c o e n t r a d a / s a l i d a ] [ , i o s t a t= edo de e n t r a d a / s a l i d a ] [ , pad=b l a n c o s ] [ , p o s i t i o n= p o s i c i ó n ] [ , r e c l= r e l l a m a d a ] [ , s h a r e= c o m p a r t i d o ] [ , s t a t u s= e s t a d o ] ) Universidad de Guanajuato, DCI, Campus León 10 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Opciones opción unit acess action Descripción Entero que especifica el número de la unidad externa. Modo de acceso para el archivo. Uno de “APPEND”, “DIRECT”, ó “SEQUENTIAL” (Por Omisión, en forma automática). Que acción se pretende realizar dentro del archivo. Puede ser: “READ” (el proceso es solo leer el archivo), “WRITE” (se pretende solo escribir en el archivo), o “READWRITE” (se pretende realizar las dos acciones leer y escribir).. Universidad de Guanajuato, DCI, Campus León 11 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Opciones opción file form position Descripción Nombre del archivo que se desea abrir. Determina la forma de apertura puede ser “FORMATEADO “ ó “SIN FORMATO”, o “BINARIO”. Indica la posición de inicio dentro del archivo. Puede ser “ASIS” (En forma automática), “REWIND”, o “APPEND”. Si es “REWIND”, un archivo existente se posiciona en el principio. Si es “APPEND”, en un archivo existente el apuntador de registro se mueve hasta el final. Si es “ASIS”, la posición en un archivo activo no cambia, mientras que en un archivo inactivo la posición será hasta el principio. Universidad de Guanajuato, DCI, Campus León 12 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Opciones opción status Descripción Cadena que describe la naturaleza del archivo a ser abierto: “OLD” El archivo debe existir. Si existe, se abre. Si no existe, ocurre un error de entrada salida, que dice “Archivo In-existente”. “NEW” El archivo no debe existir. Si no existe el archivo es creado. Si existe, entonces genera un error que dice “Archivo ya existente” . “SCRATCH” Si se omite el parámetro file al abrir el archivo, el valor del estado del archivo es “SCRATCH”. Los archivos Scratch son temporales ( Volátiles). Estos archivos son borrados cuando la unidad se cierra o termina el programa. “REPLACE” El archivo abierto reemplaza a uno del mismo nombre. Si no existe un archivo con el mismo nombre, este se creará. “UNKNOWN” (en forma automática ) Primero se trata de abrir un archivo existente (status igual a “OLD”), y después con el status “NEW”. Si el archivo existe, se abre; si no existe lo crea.. Universidad de Guanajuato, DCI, Campus León 13 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Close (Sintaxis) c l o s e ( [ u n i t =] u n i t s p e c [ , e r r= e r r l a b e l ] [ , i o s t a t=i o s t a t ] [ , s t a t u s=s t a t u s ] ) Universidad de Guanajuato, DCI, Campus León 14 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Ejemplo program pro gr ama i m p l i c i t none i n t e g e r numero print ∗ , ’ Introduzca enteros positivos : ’ numero = 0 open ( u n i t =1 , f i l e =’ numeros . dat ’ , s t a t u s =’unknown ’ ) do w h i l e ( numero >=0) r e a d ∗ , numero i f ( numero >=0) t h e n w r i t e ( 1 , ∗ ) numero end i f end do close (1) end program Universidad de Guanajuato, DCI, Campus León 15 / 16 Programcaión Básica Archivos en Fortran Archivos en Fortran Ejemplo program pro gr ama i m p l i c i t none t y p e alumno c h a r a c t e r ∗64 nombre c h a r a c t e r ∗128 a p e l l i d o s end t y p e alumno t y p e ( alumno ) d a t o s a l u m n o open ( u n i t =1 , f i l e =‘ P r o g b a s i c a . d a t ’ , s t a t u s=‘ u n k n o w n ’ ) do w h i l e ( . n o t . e o f ( 1 ) ) read (1 ,∗) datos alumno p r i n t ∗ , ’ Nombre : ’ , d a t o s a l u m n o%nombre , ’ A p e l l i d o s : ! d a t o s a l u m n o%a p e l l i d o s end do ’ , d a t o s a l u m n o%a close (1) end program Universidad de Guanajuato, DCI, Campus León 16 / 16 Programcaión Básica Archivos en Fortran