[Info-vax] Text processing examples with Fortran requested
DTL
didier.morandi at gmail.com
Mon Nov 16 02:58:21 EST 2009
FYI this is what I had to perform:
(some lines commented out to disable warnings processing after debug
phase passed)
program read_file
implicit integer*4 (a-z)
character line_1*172, line_2*172, line_3*80
character filename_1*20, filename_2*20
character addr_1*30, addr_2*30, addr_3*30, addr_4*30
character bv*4, nbv*4,canton*2
character delimiter*1
delimiter='!'
filename_1 = ' '
filename_2 = 'result.dat'
type *,'Enter file name '
read (*,11) filename_1
11 format (A)
open (2, file=filename_1,
& status='old',
& access='sequential',
& recordtype='variable',
& form='formatted')
open (3, file=filename_2,
& status='new',
& access='sequential',
& recordtype='variable',
& form='formatted')
20 read (2,21,end=99) line_1
21 format(A)
status=str$element(addr_1,8,delimiter,line_1)
! if (.not. status) call lib$stop(%val(status))
status=str$trim(addr_1,addr_1,j)
if (.not. status) call lib$stop(%val(status))
status=str$element(addr_2,9,delimiter,line_1)
! if (.not. status) call lib$stop(%val(status))
status=str$trim(addr_2,addr_2,k)
if (.not. status) call lib$stop(%val(status))
status=str$element(addr_3,10,delimiter,line_1)
! if (.not. status) call lib$stop(%val(status))
status=str$trim(addr_3,addr_3,l)
if (.not. status) call lib$stop(%val(status))
status=str$element(addr_4,11,delimiter,line_1)
! if (.not. status) call lib$stop(%val(status))
status=str$trim(addr_4,addr_4,m)
if (.not. status) call lib$stop(%val(status))
status=str$element(bv,12,delimiter,line_1)
! if (.not. status) call lib$stop(%val(status))
status=str$element(nbv,13,delimiter,line_1)
! if (.not. status) call lib$stop(%val(status))
status=str$element(canton,14,delimiter,line_1)
! if (.not. status) call lib$stop(%val(status))
line_3 = addr_1(1:j)//' '//addr_2(1:k)//' '//addr_3(1:l)//'
'//
& addr_4(1:m)//'!'//bv//'!'//nbv//'!'//canton
write (3,21) line_3
line_3 = ' '
goto 20
99 close(2)
close(3)
end
More information about the Info-vax
mailing list