- •Технологии разработки программного обеспечения
- •Реляционное представление данных
- •Типы субд
- •Место и роль субд Microsoft Access®
- •Объекты
- •Особенности интерфейса
- •Режимы работы с бд
- •Порядок выполнения работы
- •Контрольные вопросы
- •Свойства полей. Обзор
- •Регистронезависимость Access
- •Свойства полей Тип данных и Размер поля
- •Приоритеты при разработке субд
- •Проектировочный режим: средства создания объектов
- •Эксплуатационный режим таблиц
- •Порядок выполнения работы
- •Варианты заданий
- •Контрольные вопросы
- •Реализация разделения данных. Ключевые поля
- •Вид связи один-к-одному
- •Вид связи один-ко-многим
- •Вид связи многие-ко-многим
- •Механизм создания ключей
- •Механизм подтаблиц
- •Порядок выполнения работы
- •Варианты заданий
- •Контрольные вопросы
- •Фильтры по выделенному
- •Запросы
- •Классификация запросов
- •Запросы на выборку
- •Отличия фильтров от запросов на выборку
- •Понятие предиката
- •Константы и переменные в запросах
- •Операторы в запросах
- •Бланк запроса в Access
- •Запросы с параметрами
- •Порядок выполнения работы
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Контрольные вопросы
- •Групповые операции
- •Запрос на обновление
- •Встроенные функции
- •Язык sql
- •Порядок выполнения работы
- •Вариант 10
- •Контрольные вопросы
- •Компилируемые и интерпретируемые языки программирования
- •Написание программы на языке Perl
- •Синтаксис языка Perl
- •Функции Perl
- •Порядок выполнения работы
- •Регулярные выражения
- •Операция поиска в строке
- •Оператор замены в строке
- •Обратные ссылки
- •Предопределённые переменные
- •Замена в текстовом файле
- •Функции работы со строками
- •Порядок выполнения работы
- •Подчинённая таблица «Корреспонденция»
- •Вариант 2 Главная таблица «Партнёры»
- •Подчинённая таблица «Сделки»
- •Вариант 3 Главная таблица «Сотрудники»
- •Подчинённая таблица «Поручения»
- •Вариант 4 Главная таблица «Товары»
- •Подчинённая таблица «Сертификаты»
- •Вариант 5 Главная таблица «Заказы»
- •Подчинённая таблица «Заказчики»
- •Вариант 6 Главная таблица «Поставки»
- •Подчинённая таблица «Посредники»
- •Вариант 7 Главная таблица «Терминалы»
- •Подчинённая таблица «Покупки»
- •Вариант 8 Главная таблица «Плательщики»
- •Подчинённая таблица «Счета»
- •Вариант 9 Главная таблица «Проекты»
- •Подчинённая таблица «Исполнители»
- •Вариант 10 Главная таблица «Мероприятия»
- •Подчинённая таблица «Персонал»
Операция поиска в строке
Операция поиска представляет собой не что иное, как вычисление вхождения в заданную строку другую строку или множество строк, объединённое общим критерием.
Синтаксис операции:
$string =~ m/ОБРАЗЕЦ/ФЛАГИ
Идентификатор m перед образцом обычно опускают.
Некоторые флаги:
i — поиск без учета регистра;
g — Задает глобальный поиск образца в заданной строке. Это означает, что будут найдены все фрагменты текста, удовлетворяющие образцу, а не только первый из них, как имеет место по умолчанию.
Результат операции поиска – ИСТИНА (вхождение найдено) или ЛОЖЬ (вхождение не найдено).
$str = "aaabbbbcc";
if ($str =~ /a{3}/) # если вхождение строки найдено…
{ print "Found it!";
}
else
{ print "Don’t found…";
}
Оператор замены в строке
Оператор замены одного или нескольких вхождений в строке, по сути, является надстройкой над оператором поиска. В секции ЗАМЕНА метасимволы не действуют, поскольку они там и не нужны.
Синтаксис операции:
$string =~ s/ОБРАЗЕЦ/ЗАМЕНА/ФЛАГИ
Флаги i и g имеют то же значение, что и в операторе поиска.
Оператор замены возвращает количество произведённых подстановок или ЛОЖЬ, если не было найдено ни одного соответствия образцу.
Обратные ссылки
Ранее мы установили, что группу элементов регулярного выражения можно заключить в скобки и рассматривать как один элемент. Заключение группы элементов в скобки имеет дополнительный и весьма полезный эффект. Если в результате поиска будет найден фрагмент текста, соответствующий образцу, заключенному в скобки, то этот фрагмент сохранится в специальной переменной. Внутри регулярного выражения к нему можно будет обратиться, используя запись \number, где number—номер конструкции () в исходном регулярном выражении. Запись \number, указывающую на найденный по образцу фрагмент текста, будем называть обратной ссылкой. Например, образцу /(.+)-\1/ соответствуют слова "ха-ха", "Баден-Баден", "ква-ква" и т. п., а образцу /(.)(.).?\2\1/ — все палиндромы из четырех или пяти букв. (Палиндром — слово или предложение, которое одинаково читается слева направо и справа налево).
Для ссылки на найденный фрагмент текста за пределами регулярного выражения, например, при задании замещающего текста в операции замены, вместо записи \number используется запись $number. Например, следующая операция замены меняет местами первые два слова, разделённые пробелом, в строке $Str.
$Str =~ s/([A-Za-z0-9]+) ([A-Za-z0-9]+)/$2 $1/;
Предопределённые переменные
Область действия переменных $1, $2 и т. д. распространяется до наступления одного из следующих событий: конец текущего блока; конец строки, являющейся аргументом функции eval; следующее совпадение с образцом. Аналогичным образом определяется область действия и для следующих предопределенных переменных, используемых в операциях сопоставления с образцом.
Предопределённые переменные представляют собой множество переменных, определяемых для облегчения участи программиста, чтобы тот не именовал свои переменные для характерных стандартных действий. Впрочем, есть у некоторых из них и другие полезные свойства, например при операции поиска/замены в строке.
$& — часть строки, найденная при последней операции сопоставления с образцом.
$' — часть строки, стоящая перед совпавшей частью при последней успешной операции сопоставления с образцом.
$` — часть строки, стоящая после совпавшей части при последней успешной операции сопоставления с образцом.
Например, в результате выполнения операции поиска
$str=~m/two/
в строке $str="one two three" образца /two/ переменным будут присвоены следующие значения: $& - "two"; $* - "one "; $' - " three".
Эти значения будут сохраняться до наступления одного из перечисленных выше событий, и их можно использовать, например, для формирования строки с обратным порядком следования слов: $rstr=$'.$&.$`. Строка $rstr будет иметь ВИД " threetwoone ".
