1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| ! lecture dans un string puis décodage
REAL(8) X,Y ! données à lire
INTEGER(4) IOERR ! error number during file opening or writing (system)
INTEGER(4) ERREUR ! erreur number given by application
INTEGER(4) DAT ! data file logical number
INTEGER(4) STDERR ! error stream logical number
CHARACTER*255 DAT_FNAME ! data file name (input)
CHARACTER*132 LIGNE ! dummy string
INTEGER(4) NLEN ! line length
PARAMETER (DAT=19, STDERR=6)
DAT_FNAME = 'nomfichier.txt' ! Default file name
OPEN(UNIT=DAT,NAME=DAT_FNAME,STATUS='OLD',IOSTAT=IOERR)
IF (IOERR.GT.0) THEN
WRITE(STDERR,'(A10,I3,A32,A)') CHAR(09)//'ERROR n°:',IOERR," DURING OPENING "//DAT_FNAME(1:LNBLNK(DAT_FNAME))
ENDIF
READ(DAT,'(A)',END=999) LIGNE
! on peut mettre un print ici pour voir la ligne lue
! write(stderr,*) LIGNE
NLEN = LEN_TRIM(LIGNE)
DO I=1,NLEN
IF (LIGNE(I:I) == ',') LIGNE(I:I) = ' ' ! virgule -> espace
ENDDO
! on peut mettre un print ici pour voir la ligne modifiée
! write(stderr,*) LIGNE
READ(LIGNE,*) X,Y ! décodage ligne
! ici un return ou goto pour ne pas passer par exception
C Exceptions
999 ERREUR = 10
WRITE(IMP,'(A13,I3)') CHAR(09)//'WARNING: n° ',ERREUR,
WRITE(IMP,'(A)') CHAR(09)//'End of file during read' |
Partager