Subroutine del_f()

implicit none

real x

open (10, file='isxseq.txt', form='unformatted', status='old')

open (20, form='unformatted', status='scratch')!открываем врем. файл

do while (.not. eof (10))!

read(10) x!читаем из исходного файла

if (x>=0) write(20) x!записываем во вспомогательный

enddo

rewind(10)! переход на начало исходного файла

rewind(20)! переход на начало вспомогательного файла

Do while (.not.eof (20))

read(20) x!читаем из вспомогательного

write(10)x!пишем в исходный

Enddo

close(10)

close(20)

End subroutine

Program main

implicit none

integer,parameter::n=10

call create_sq (n)

print*,'isx fil'

Call view_sq()

Call del_f()

print*,'posle delete'

Call view_sq()

End

Удаление записей из неформатного файла прямого доступа.

Пример

В неформатном файле прямого доступа удалить все отрицательные числа.

Для решения задачи, как и в файле последовательного доступа, используем временный файл. Временный файл может быть выбран и прямого и последовательного доступа.

Процедура удаления с временным файлом прямого доступа.

Subroutine del_zap ()

implicit none

integer i, k

real x

!исходный файл

open (30, file='f_dir.txt', access='direct', form='unformatted', recl=4)

!временный файл

open(10, access='direct', form='unformatted', recl=4, status='scratch')

i=0!номер записи исходного файла

k=0! номер записи временного файла

do while (.not.eof (30))

i=i+1!формирование номера считываемой записи

read(30, rec=i) x

if (x>0)then

k=k+1! формирование номера записи во врем. файле

write(10, rec=k) x

endif

enddo

find(10, rec=1)!перешли на начало временного файла

close(30, status='delete')!удалили исходный файл

!снова открыли исходный файл для записи

open (30, file='f_dir.txt', access='direct', form='unformatted',recl=4)

i=0

!переписываем из временного файла в основной

do while (.not.eof (10))

i=i+1

read (10, rec=i) x!читаем из временного

write (30, rec=i)x!пишем в основной

Enddo

print*,'ok perezap del,kol=',i

close(10)!при закрытии временный файл удаляется

close(30)

End subroutine

Процедура удаления записи с использованием в качестве временного файла - неформатный файл последовательного доступа.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: