En este tema, aprenderemos cómo manejar archivos binarios en Fortran. Los archivos binarios son útiles cuando se necesita almacenar datos en un formato más compacto y eficiente que los archivos de texto. A continuación, cubriremos los conceptos clave, proporcionaremos ejemplos prácticos y ejercicios para reforzar el aprendizaje.

Conceptos Clave

  1. Archivos Binarios vs. Archivos de Texto:

    • Archivos de Texto: Almacenan datos en formato legible por humanos.
    • Archivos Binarios: Almacenan datos en formato binario, que es más eficiente en términos de espacio y velocidad de lectura/escritura.
  2. Apertura de Archivos Binarios:

    • Utilizamos la instrucción open con el atributo form='unformatted' para abrir archivos binarios.
  3. Lectura y Escritura de Datos:

    • Utilizamos las instrucciones read y write para leer y escribir datos en archivos binarios.
  4. Posicionamiento en Archivos Binarios:

    • Utilizamos la instrucción rewind, backspace y endfile para manipular la posición en el archivo.

Ejemplo Práctico

Escribiendo Datos en un Archivo Binario

program write_binary
    implicit none
    integer :: i, unit
    real :: data(5) = [1.1, 2.2, 3.3, 4.4, 5.5]

    ! Abrir el archivo binario para escritura
    open(unit=10, file='data.bin', form='unformatted', status='replace')

    ! Escribir los datos en el archivo binario
    write(10) data

    ! Cerrar el archivo
    close(10)
end program write_binary

Leyendo Datos de un Archivo Binario

program read_binary
    implicit none
    integer :: i, unit
    real :: data(5)

    ! Abrir el archivo binario para lectura
    open(unit=10, file='data.bin', form='unformatted', status='old')

    ! Leer los datos del archivo binario
    read(10) data

    ! Cerrar el archivo
    close(10)

    ! Imprimir los datos leídos
    do i = 1, 5
        print *, 'Data(', i, ') = ', data(i)
    end do
end program read_binary

Explicación del Código

  1. Apertura del Archivo:

    • open(unit=10, file='data.bin', form='unformatted', status='replace'): Abre el archivo data.bin para escritura en formato binario. Si el archivo ya existe, se reemplaza.
    • open(unit=10, file='data.bin', form='unformatted', status='old'): Abre el archivo data.bin para lectura en formato binario. El archivo debe existir.
  2. Escritura de Datos:

    • write(10) data: Escribe el arreglo data en el archivo binario.
  3. Lectura de Datos:

    • read(10) data: Lee los datos del archivo binario en el arreglo data.
  4. Cierre del Archivo:

    • close(10): Cierra el archivo.

Ejercicio Práctico

Ejercicio 1: Escribir y Leer una Matriz en un Archivo Binario

Objetivo: Escribir una matriz de 3x3 en un archivo binario y luego leerla desde el archivo.

Instrucciones:

  1. Escribe un programa que cree una matriz de 3x3 con valores de tu elección.
  2. Escribe la matriz en un archivo binario.
  3. Escribe otro programa que lea la matriz desde el archivo binario y la imprima en la pantalla.

Solución:

Escribiendo la Matriz

program write_matrix
    implicit none
    integer :: i, j, unit
    real :: matrix(3,3) = reshape([1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9], [3,3])

    ! Abrir el archivo binario para escritura
    open(unit=10, file='matrix.bin', form='unformatted', status='replace')

    ! Escribir la matriz en el archivo binario
    write(10) matrix

    ! Cerrar el archivo
    close(10)
end program write_matrix

Leyendo la Matriz

program read_matrix
    implicit none
    integer :: i, j, unit
    real :: matrix(3,3)

    ! Abrir el archivo binario para lectura
    open(unit=10, file='matrix.bin', form='unformatted', status='old')

    ! Leer la matriz del archivo binario
    read(10) matrix

    ! Cerrar el archivo
    close(10)

    ! Imprimir la matriz leída
    do i = 1, 3
        do j = 1, 3
            print *, 'Matrix(', i, ',', j, ') = ', matrix(i,j)
        end do
    end do
end program read_matrix

Retroalimentación y Consejos

  • Errores Comunes:

    • No cerrar el archivo después de la lectura/escritura puede causar problemas de acceso.
    • Asegúrate de que el archivo existe antes de intentar leerlo.
    • Verifica que los datos leídos sean del mismo tipo y tamaño que los datos escritos.
  • Consejos Adicionales:

    • Utiliza nombres de archivos descriptivos para facilitar la identificación.
    • Siempre maneja los errores de apertura de archivos para evitar fallos inesperados.

Conclusión

En esta sección, hemos aprendido cómo manejar archivos binarios en Fortran, incluyendo la apertura, lectura, escritura y cierre de archivos. Los archivos binarios son una herramienta poderosa para almacenar datos de manera eficiente. Con los ejemplos y ejercicios proporcionados, deberías estar bien preparado para trabajar con archivos binarios en tus propios proyectos.

En el próximo módulo, exploraremos temas avanzados como módulos e interfaces, que te permitirán organizar y estructurar mejor tu código Fortran.

© Copyright 2024. Todos los derechos reservados