- •Часть 3
- •Содержание
- •30. Работа с файлами
- •Примечание:
- •31. Открытие файлов
- •File not found
- •32. Непосредственная работа с файлом
- •33. Форматный вывод информации
- •34. Форматное чтение информации из файла
- •35. Обработка сбойных ситуаций и ситуаций “конец файла” при вводе-выводе информации
- •Обработка сбойной ситуации:
- •7 Write (6,*) ’Введите a,I,b’
- •Обработка ситуации “конец файла”:
- •36. Операторы для работы с записями в файле
- •37. Дополнение файла информацией
- •Первый способ дополнения файла информацией:
- •10 Write (6,*)’Всего записей в файле’,kzap
- •Второй способ дополнения файла информацией
- •4 Write (6,*)’в файле было записей’,kz
- •38. Работа с текстом
- •39. Текстовые константы
- •Правило:
- •10 Format (a8)
- •10 Format (a)
- •1) Вводится меньше 8 символов, то они помещаются в переменную imfile, а недостающие до 8 позиции дополняются пробелами.
- •2) Вводится имя большего размера, чем 8 позиций, то будут восприняты только первые 8 символов и они будут записаны в переменную imfile;
- •8 Format (a10/5a5)
- •9 Format (1x,a10/1x,5a5)
- •9 Format (1x,a10/1x,5a5)
- •Семин а.В.
- •Правила ввода-вывода текстовой информации:
- •1). Ввод информации
- •Примечание:
- •40. Текстовые подцепочки
- •41. Вывод графиков
- •42. Эквивалентирование текстовых переменных
- •If(fam1.Eq.Fam2) write(6,9) fam2,k1,k2,k3,k4
- •7 Format (a40,i5,a15,i5,a7)
- •If (ngod.Ne.1962) goto 4
- •9 Format (1x,a40,i5,a15,i5,a7)
- •10 Write(4,*)’Конец просмотра базы данных’
- •43. Создание библиотек
- •44. Решение дифференциальных уравнений
- •45. Работа с комплексными данными
- •Правило:
- •46. Ввод-вывод переменных комплексного типа
- •Примечание:
- •47. Встроенные функции комплексного типа
- •48. Оператор equivalence
- •Правило:
- •49. Результаты арифметических операций в выражениях с данными разного типа
- •50. Файлы прямого доступа
- •51. Способы передачи форматных записей
- •52. Модификации оператора цикла do
- •6 Continue
- •If (y.Lt.0.05) cycle
- •55. Командные файлы
- •If errorlevel 1 go to exit
- •If errorlevel 1 go to done
40. Текстовые подцепочки
Текстовые подцепочки позволяют выделить несколько символов из текстовой переменной. При этом указывается имя текстовой переменной, а в скобках начальные и конечные символы. Пример записи:
А1(2:4) – из текстовой переменной А1 выделить текстовую подцепочку, начиная со 2 по 4 символ включительно.
А1(:5)– выделяется текстовая подцепочка с начала переменной А1 по 5-й символ включительно.
А1(4:)– выделяется текстовая подцепочка начиная с 4-го символа до конца переменной А1.
Текстовую подцепочку можно записывать, сравнивать, выводить. Значение этой подцепочки можно присвоить другой переменной.
Например:
CHARACTER*8 A1,B1,T*125
READ (5,7) A1 Например, для ввода наберем текст февраль
FORMAT (A8)
WRITE (6,'(A)') A1 при таком выводе или при выводе по формату с меткой 1 мы не напечатаем первый символ введенного текста и получим евраль. Но в памяти ЭВМ введенный текст сохранится правильно.
T='Расписание занятий на январь месяц'
B1=T(23:29)
WRITE (6,7) B1 По этому оператору будет напечатано слово январь
T(23:29)=A1 Начальных семь символов текста, введенного первым оператором READ, будут помещены в текстовую переменную T в качестве символов с 23-го по 29-й и заменят собой предыдущий текст январь-.
WRITE(5,'(1X,A)') T Будет выведен текст Расписание занятий на февраль месяц
С текстовыми переменными можно производить следующие операции:
1). Производить операции сцепления при помощи символов “ // ”:
Т=А1//В1
Это означает в текстовую переменную Т записать текст, который содержится в текстовых переменных А1 и В1.
T=A1// //B1(:5)
Переменной Т присвоится текст из переменной А1+ пробел + информация из начала и до 5-го символа переменной В1(1 можно не ставить)
2). Текстовые переменные можно сравнивать с помощью логических операторов IF, используя две операции:
.EQ. и .NE.
Текстовые символы А, В, С … можно сравнивать на "больше" или "меньше" между собой и в алфавитном порядке выполняется следующее:
A<B<C… иa<b<c
Существуют следующие функции для работы с текстовыми переменными:
1. функция длины LEN(имя переменной)– определяет длину текстовой переменной.
K=LEN(A1) Обратите внимание, что К целого типа
2. функция INDEX(имя переменной, подцепочка).
INDEXопределяет номер позиции с которой в текстовой переменной встретилась текстовая подцепочка. Аргумент функции состоит из двух параметров: первый параметр указывает имя текстовой переменной, в которой производить поиск, второй параметр указывает искомую подцепочку. Параметры разделяются запятой, и подцепочка берется в кавычки.
N=INDEX(T,'февр') Для ранее приведенного примера N будет равен 23
Если в этой текстовой переменной два или более раз встретилась эта текстовая подцепочка, то определяется номер позиции первого сочетания. Для нахождения номера позиции второго сочетания, необходимо указывать, с какой позиции и по которую позицию текстовой переменной производить поиск.
Например:
N2=INDEX(T(24:),’февр’) В переменной Т, начиная с 24 позиции и до конца найти номер указанной подцепочки, (это будет второй раз встречающаяся подцепочка'февр').
Две текстовые переменные можно сравнивать между собой с помощью логических функций:
Лексически больше либо равно LGE(C1,C2) – имеет значение .TRUE. если текстовое С1больше текстового С2.
Используется вместо .GE.. Можно записать вместоIF(C1.GE.C2) строкуIF(LGE(C1,C2)). Так же существуют следующие текстовые логические фукнции, аналогичные арифметическим:
LLT, LLE, LGT, LGE.
Их можно использовать только на персональных ЭВМ, начиная с ФОРТРАН-95.
Текстовые переменные можно сравнивать с помощью обычных логических операций отношений:
.GT. .NE.
.GE. .LE.
.EQ. .LT.
Это же работает и на Фортране под WINDOWS.
Пример:
N=INDEX(T,’сер’)
N1=INDEX(T(N+1:125),’сер’)