implicit none
open(20, file='isx_base.txt', access= 'direct', form='unformatted', recl= sizeof(z))
do i=1, n
print*,'bb name'
read*,z.name! формирование компонент структуры
print*,'bb kol'
read*,z.kol
print*,'bb zenu'
read*,z.cost
write (20, rec=i)z запись сформированной структуры в файл
enddo
close(20)
End subroutine create
! Процедура просмотра
Subroutine view()
use global
implicit none
open (20, file='isx_base.txt', access= 'direct', form='unformatted', recl= sizeof(z))
i=0! номер записи
print*,' name novara ',' kol. tow ',' cena tow'
do while (.not.eof(20))
i=i+1
read (20, rec=i) z! чтение из файла всей структуры
print*,z. name, z.kol, z.cost! вывод на экран компонент
Enddo
close(20)
End subroutine view
! Процедура справка
Subroutine inform()
use global
implicit none
character(20) newname
real value
integer k
open(20, file='isx_base.txt', access= 'direct', form='unformatted', recl=sizeof(z))
i=0
print*,'name new tovara'
read*, newname
k=0
value=0
do while (.not. eof(20))
i=i+1
read(20,rec=i)z
if ( z.name==newname)then
k=k+z. kol
value=value+k* z. cost!вычислениестоимости
endif
Enddo
print'(3 (2x, A),I3, 5x, A, F4.1)','tow', newname, 'kol=', k, 'value=', value
close(20)
End subroutine inform
Выбор метода доступа в файле и типа записи
Выбор способа доступа к файлу определяется характером решаемой задачи. Если необходимо редактировать записи файла, то, наверное, целесообразнее использовать используются файлы прямого доступа. Если необходимо часто добавлять записи, то проще использовать последовательные неформатные файлы.
При выборе типа записей файла следует учитывать следующее:
Передача данных в неформатных файлах выполняется быстрее, т.к. не требуется преобразование данных;
Программировать неформатный ввод/вывод проще, чем форматный;
Неформатные файлы имеют меньший размер, чем текстовые файлы;
В текстовых файлах из-за округления может возникнуть потери точности;
При необходимости иметь данные в доступной для визуального просмотра форме, используют текстовые файлы.






