?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
CALL GWGTXT (idtext(i),texts(i))<br />
! перевод данных из текстовой формы в числовую. Числовые данные читаются в<br />
! массив вещественного типа vhod(i) посредством оператора чтения из texts(i).<br />
read (texts(i),*) vhod(i)<br />
end do<br />
! проверка, был ли введен текст в строку виджета с именем файла для записи<br />
! данных. Эта строка хранится в переменной CFIL2.<br />
if (CFIL2/=' ') then ! Если строка не пустая, то<br />
! открывается файл с именем, записанным в CFIL2.<br />
! Функция trim отсекает хвостовые пробелы в переменной CFIL2.<br />
open (1, file = trim (CFIL2))<br />
! вывод данных в файл<br />
write (1,'(g10.3)') (vhod(i), i=1,kolpar)<br />
close(1); ! закрывает устройство для вывода в файл.<br />
endif<br />
END subroutine vvod<br />
! подпрограмма вторичного вызова. Имя подпрограммы должно совпадать с именем,<br />
! указанным при обращении в SWGCBK. При открытии подпрограммы указывается<br />
! формальный параметр, в данном случае это переменная IDR. Фактическое<br />
! значение этой переменной равно значению переменной, указанной при обращении<br />
! к SWGCBK в данном случае это значение переменной ID_FIL. Таким образом, в<br />
! подпрограмме будет обработан виджет с именем открытого файла.<br />
SUBROUTINE ROUTINE(IDR)<br />
! подсоединение модуля obmen с общими переменными.<br />
use obmen<br />
! объявление символьной переменной CFIL длиной 80 символов для чтения имени<br />
! файла.<br />
CHARACTER*80 CFIL<br />
! чтение имени файла из виджета с идентификатором IDR (или, что то же с<br />
! идентификатором ID_FIL). Имя файла заносится в переменную CFIL.<br />
CALL GWGFIL(IDR, CFIL)<br />
! открытие файла с именем, записанным в переменной CFIL. Функция trim отсекает<br />
! хвостовые пробелы переменной CFIL.<br />
open (1,file = trim (CFIL))<br />
! чтение данные из открытого файла и запись их в массив vhod(i). При сбое чтения<br />
! переменной ios будет присвоено ненулевое значение. Кроме того, если при чтении<br />
! встретился конец файла, то выполнение программы продолжится с метки 10.<br />
read(1,*, end=10, iostat =ios) (vhod(i),i=1,kolpar)<br />
do i=1,kolpar !цикл для отображения прочитанных из фала данных в окно.<br />
! вывод числовых данных в текстовый массив texts(i)<br />
write (texts(i),*) vhod(i)<br />
! вывод данных из тестового массива в оконные виджеты. Теперь данные,<br />
! прочитанные из файла, отразятся в окне ввода.<br />
CALL SWGTXT (IDTEXT(i), texts(i))<br />
end do ! завершение цикла ввода<br />
close(1) ! закрытие устройства для чтения из файла.<br />
! Здесь проверяется состояние переменной ios.<br />
10 if (ios/=0) then ! Если она не равна 0, то<br />
! производится вывод предупреждения о том, что входной файл пустой.<br />
CALL DWGMSG ('Предупреждение:|входной файл пустой'); endif<br />
END SUBROUTINE ROUTINE ! завершение подпрограммы.<br />
152