En aquest tema, aprendrem com gestionar el posicionament dins dels fitxers en Fortran. Això inclou com moure's a través d'un fitxer per llegir o escriure en posicions específiques. Aquesta habilitat és crucial quan es treballa amb fitxers grans o quan es necessita accedir a dades en ubicacions específiques sense llegir tot el fitxer.
Conceptes Clau
- Posicionament de Fitxers: La capacitat de moure el punter de fitxer a una ubicació específica.
- Unitats de Fitxer: Identificadors que Fortran utilitza per referir-se als fitxers oberts.
- Comandes de Posicionament: Instruccions per moure el punter de fitxer.
Comandes de Posicionament
REWIND
La comanda REWIND
es fa servir per moure el punter de fitxer al començament del fitxer.
unit
: El número de la unitat de fitxer.
Exemple:
BACKSPACE
La comanda BACKSPACE
mou el punter de fitxer una línia enrere.
unit
: El número de la unitat de fitxer.
Exemple:
ENDFILE
La comanda ENDFILE
mou el punter de fitxer al final del fitxer.
unit
: El número de la unitat de fitxer.
Exemple:
Exemple Pràctic
A continuació, es mostra un exemple pràctic que utilitza les comandes de posicionament per llegir i escriure en un fitxer.
PROGRAM FilePositioning IMPLICIT NONE INTEGER :: unit, i CHARACTER(LEN=20) :: line ! Obrir el fitxer unit = 10 OPEN(UNIT=unit, FILE='dades.txt', STATUS='OLD') ! Llegir la primera línia READ(unit, '(A)') line PRINT *, 'Primera línia: ', TRIM(line) ! Moure el punter al començament del fitxer REWIND(unit) ! Llegir la primera línia de nou READ(unit, '(A)') line PRINT *, 'Primera línia després de REWIND: ', TRIM(line) ! Moure el punter una línia enrere BACKSPACE(unit) ! Llegir la línia anterior READ(unit, '(A)') line PRINT *, 'Línia després de BACKSPACE: ', TRIM(line) ! Moure el punter al final del fitxer ENDFILE(unit) ! Escriure una nova línia al final del fitxer WRITE(unit, '(A)') 'Nova línia al final del fitxer' ! Tancar el fitxer CLOSE(unit) END PROGRAM FilePositioning
Exercicis Pràctics
Exercici 1
-
Crea un fitxer de text anomenat
exercici1.txt
amb el següent contingut:Línia 1 Línia 2 Línia 3
-
Escriu un programa en Fortran que:
- Obri el fitxer
exercici1.txt
. - Llegeixi i imprimeixi la segona línia.
- Escrigui una nova línia després de la segona línia.
- Tanqui el fitxer.
- Obri el fitxer
Solució:
PROGRAM Exercici1 IMPLICIT NONE INTEGER :: unit CHARACTER(LEN=20) :: line ! Obrir el fitxer unit = 10 OPEN(UNIT=unit, FILE='exercici1.txt', STATUS='OLD') ! Llegir la primera línia READ(unit, '(A)') line ! Llegir la segona línia READ(unit, '(A)') line PRINT *, 'Segona línia: ', TRIM(line) ! Escriure una nova línia després de la segona línia WRITE(unit, '(A)') 'Nova línia després de la segona línia' ! Tancar el fitxer CLOSE(unit) END PROGRAM Exercici1
Exercici 2
-
Crea un fitxer de text anomenat
exercici2.txt
amb el següent contingut:Dada 1 Dada 2 Dada 3
-
Escriu un programa en Fortran que:
- Obri el fitxer
exercici2.txt
. - Mogi el punter al final del fitxer.
- Escrigui una nova dada al final del fitxer.
- Tanqui el fitxer.
- Obri el fitxer
Solució:
PROGRAM Exercici2 IMPLICIT NONE INTEGER :: unit ! Obrir el fitxer unit = 10 OPEN(UNIT=unit, FILE='exercici2.txt', STATUS='OLD') ! Moure el punter al final del fitxer ENDFILE(unit) ! Escriure una nova dada al final del fitxer WRITE(unit, '(A)') 'Nova dada al final del fitxer' ! Tancar el fitxer CLOSE(unit) END PROGRAM Exercici2
Conclusió
En aquesta secció, hem après com utilitzar les comandes de posicionament de fitxers en Fortran per moure el punter de fitxer a ubicacions específiques. Aquestes habilitats són essencials per gestionar fitxers de manera eficient, especialment quan es treballa amb grans volums de dades. Hem vist exemples pràctics i hem proporcionat exercicis per reforçar els conceptes apresos. En la següent secció, explorarem les operacions amb fitxers binaris.
Curs de Programació en Fortran
Mòdul 1: Introducció a Fortran
- Introducció a Fortran
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Escrivint el teu Primer Programa en Fortran
Mòdul 2: Conceptes Bàsics
- Variables i Tipus de Dades
- Operadors i Expressions
- Entrada i Sortida
- Estructures de Control: Sentències If
- Estructures de Control: Bucles
Mòdul 3: Arrays i Cadenes
Mòdul 4: Procediments i Funcions
Mòdul 5: Estructures de Dades Avançades
Mòdul 6: Gestió de Fitxers
Mòdul 7: Temes Avançats
Mòdul 8: Millors Pràctiques i Optimització
- Tècniques d'Optimització de Codi
- Depuració i Perfilat
- Escrivint Codi Mantenible
- Estàndards i Portabilitat de Fortran