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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
program TEST
implicit none
integer :: ios,I,K,J,TAILLE_SEPARATEUR=1,IMIN,IEND
character(99) :: CHAINE
character(1) :: COMPAR
real(kind=8),allocatable,dimension(:) :: VECTREELS,VECTREELS_TMP
logical :: ISTART,ISA_NUMBER
I=0
open(11,file='TEST.txt',status='old',action='read')
do
read(11,*,iostat=ios)
if(ios/=0)exit
I=I+1
end do
rewind(11)
allocate(VECTREELS_TMP(I))
I=1
DO
READ(11,'(a)',iostat=ios) CHAINE
if (ios /= 0) exit
ISTART=.FALSE.
ISA_NUMBER=.FALSE.
IEND=0
IMIN=0
do K=1,LEN(CHAINE)
if(.NOT. ISA_NUMBER) then
do J=0,9
write(COMPAR,'(i0)')J
if(COMPAR==CHAINE(K:K)) ISA_NUMBER=.TRUE.
end do
end if
if(CHAINE(K:K)=='' .and. .not. ISTART)then
ISTART=.TRUE.
IMIN=K+TAILLE_SEPARATEUR
end if
if(CHAINE(K:K+TAILLE_SEPARATEUR)=='' .and. ISTART) then
IEND=K-1
exit
end if
end do
if(ISA_NUMBER .and. IMIN<IEND) then
read(CHAINE(IMIN:IEND),*) VECTREELS_TMP(I)
I=I+1
end if
if(ISA_NUMBER .and. IMIN>IEND) then
read(CHAINE,*) VECTREELS_TMP(I)
I=I+1
end if
END DO
!REALLOCATION DU TABLEAU
allocate(VECTREELS(I-1))
VECTREELS=VECTREELS_TMP(1:I-1)
deallocate(VECTREELS_TMP)
print*,VECTREELS
end program TEST |
Partager