13.08.2013 Views

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!