Programación Básica Archivos en Fortran

Anuncio
Programación Básica
Archivos en Fortran
Arturo Vega González
a.vega@ugto.mx
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
Descargar