Но предположим, что пользователь написал дату рождения с лишним пробелом. Например так, 02.12. 1962. Как можно предположить подобную ситуацию и исправить ее автоматически?

Конечно же, во-первых, нам следует убедиться, что имелась ввиду именно дата рождения а не период работы или дата составления резюме. На это могут указывать сопутствующие данные: фрагменты слов в строке с «род», «рожд», «г.р» или «д.р». Убедившись, мы используем ту же функцию shablon, но с некоторой модификацией, которая может получать числовую информацию, игнорируя степень разреженности между числовыми символами.

Так, функция clearshablon в случае необходимости игнорирует наличие или отсутствие в строке дополнительных пробелов, благодаря нескольким операторам, добавленным в функцию shablon и пользуясь описанной выше процедурой insinstring.


Илл. 41. Функция clearshablon – осуществляет поиск шаблона и в случае неудачи пытается улучшить результат, игнорируя символы пробелов.


В итоге, при обработке строки «02.12. 1962» с использованием шаблона, не включающего пробел 2212212222 функция сlearshablon вернет результат «02.12.1962» без лишнего пробела, благодаря синхронным усилиям процедуры insinstring, устранившим все пробелы из строк как в коде-шаблоне, так и в исходной строке.

Разреженный текст

К разреженному тексту разработчики обычно относятся скептически; мол, явление это редкое и тратить усилия на то, чтобы его распознавать – бессмысленно. Но если исходить из анализа данных современных резюме, рефератов и сочинений, окажется, что почти в каждом двадцатом из них встречаются одна-две строки разреженного текста. Неужели строку типа «И в а н о в И в а н И в а н о в и ч» придется упустить? Быть может вы никогда не столкнетесь с разреженным текстом, но сам по себе вопрос весьма интересен.

Посмотрим, как эту проблему можно решить средствами Паскаля.

1. Во-первых, нам следует определить некоторые признаки разреженности. (Одинарная, двойная, тройная или четверная цикличность символов пробела, чередующаяся с символами единичных букв).

Конец ознакомительного фрагмента.

Купите полную версию книги и продолжайте чтение
Купить полную книгу