[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