Дипломная работа: Автоматизация "личного кабинета" консультанта по недвижимости (на примере организации Росинформ)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
58
поддержки обратной совместимости, что значительно очищает язык и делает
его более элегантным, чего нельзя сказать о Visual Basic .NET.
В основу синтаксических конструкций C# была положена упрощенная
форма языка C++, поэтому даже с первых минут изучения новый язык кажется
очень знакомым программистам всех C-подобных языков.
Основное преимущество языка C# – полная ориентация на платформу
Microsoft .NET, что делает его наиболее удобным и эффективным средством
разработки для этой платформы. Об этом говорит и тот факт, что сама фирма
Microsoft официально позиционирует C# как основной язык платформы .NET.
3.4. Реализация серверной части
Серверная часть представлена сервером баз данных Microsoft SQL
Server, который содержит базу данных и является центром хранения и
обработки данных системы ООО Росинфом.
Реализация базы данных системы ООО Росинфом состоит из двух
этапов:
создание таблиц базы данных;
написание хранимых процедур.
Реализация интелектуального анализатора.
Реализация анализатора проведена была нами с широким
использованием техники так называемых регулярных выражений.
При поиске файлов на жестком диске обычно используют символы ? и *,
чтобы облегчить поиск нужных файлов. Символ ? соответствует одиночному
символу в имени файла, в то время как * соответствует нулевому или большему
количеству символов. Шаблон типа 'data?.dat' нашел бы следующие файлы:
data1.dat data2.dat datax.dat ... dataN.dat
Использование символа * вместо символа ? расширяет число найденных
файлов. 'data*.dat' соответствует всем следующим файлам: data.dat, data1.dat,
data2.dat, data12.dat, datax.dat, dataXYZ.dat
59
В то время, как такой метод поиска файлов, безусловно, может быть
полезным, он также является и весьма ограниченным. Ограниченные
возможности символов маски ? и * дают нам некоторое понимание, что могут
делать регулярные выражения, но при этом регулярные выражения намного
более мощны и гибки.
Регулярные выражения уходят корнями еще в ранние исследования
функционирования человеческой нервной системы. Нейрофизиологи, Уоррен
Маккуллоч и Уолтер Питц, разрабатывали в то время математический способ
описания нейросетей.
В 1956 году математик по имени Стивен Клин, основываясь на
предшествующих работах Маккуллоча и Питца, опубликовал труд
Представление Событий в Нейросетях, в котором и ввел концепцию
регулярных выражений. Регулярные выражения были выражениями,
использовавшимися для описания того, что он тогда называл "алгеброй
регулярных наборов". Отсюда пошел и термин "регулярное выражение".
Впоследствии его работа нашла применение в некоторых ранних опытах
с вычислительными алгоритмами поиска, проведенных Кеном Томпсоном,
основным разработчиком Unix. Первое практическое применение регулярных
выражений было осуществлено в Unix-редакторе, называвшемся qed.
Дальнейшее - это уже, как говорится, история. Регулярные выражения с
тех пор являются важной частью текстовых редакторов и программ для поиска
текста.
В типичных операциях поиска и замены, мы должны всегда точно
указывать разыскиваемый текст. Этот метод вполне может соответствовать
задачам простого поиска и замены в статическом тексте, но ему недостает
гибкости, что делает поиск динамического текста весьма сложным, если не
сказать невозможным.
Используя регулярные выражения, мы можем:
Проверить строку на соответствие некоему образцу.
Например, можно протестировать входную строку, чтобы узнать,
60
встречается ли в этой строке шаблон номера телефона или шаблон
номера кредитной карточки. Это называется проверкой правильности
данных.
Заменить текст. мы можем использовать регулярное
выражение, чтобы идентифицировать определенный текст в документе, а
затем или удалить его полностью, или заменить другим текстом.
Извлечь подстроку из строки, основываясь на соответствии
образцу. мы можем найти определенный текст в документе или в поле
ввода данных.
Например, если нам нужно произвести глобальный поиск по всему Web-
сайту для удаления некоторого устаревшего материала и для замены отдельных
HTML тэгов, мы можем использовать регулярное выражение для тестирования
каждого файла на предмет того, существуют ли в этом файле разыскиваемый
материал или HTML тэги. Таким способом Вы можете сузить круг
обрабатываемых файлов только до тех, что действительно содержат материал,
который должен быть удален или заменен. Затем мы можете использовать
регулярное выражение, чтобы удалить устаревший материал, и, наконец, Вы
можете использовать регулярные выражения, чтобы найти и заменить тэги,
нуждающиеся в замене.
Другой пример того, где могут быть полезны регулярные выражения,
касается тех языков программирования, которые не имеют развитых
возможностей для обработки строк. Visual Basic, имеет богатый набор функций
для обработки строк. Но JScript, как и язык C - не имеет. Регулярные
выражения обеспечивают существенное расширение возможностей обработки
строк в JScript. Однако, регулярные выражения можно эффективно
использовать и в VBScript, так как это позволит нам производить сразу
несколько строковых манипуляций в одном выражении.
Регулярное выражение - это текстовый шаблон (образец), состоящий из
обычных символов (например, символов от а до z) и специальных символов,
известных как метасимволы. Этот шаблон описывает одну или более строк,
61
которые должны обеспечить совпадения во время выполнения поиска в
предложенном тексте. Регулярное выражение выполняет роль образца для
сопоставления некоего символьного шаблона строке, в которой производится
поиск.
Вот несколько примеров регулярных выражений, которые могут Вам
встретиться:
VB
Соответствие
"^\[ \t]*$"
Соответствует пустой строке.
"\d{2}-\d{5}"
Проверяет на соответствие идентификационный
номер, состоящий из 2-х цифр, дефиса и после еще 5-и
цифр.
"<(.*)>.*<\/\1>"
Соответствует HTML тагу.
Следующая таблица содержит полный список метасимволов и их
поведения в контексте регулярных выражений:
Символ
Описание
\
Помечает следующий за ним символ как специальный символ,
литерал, обратную ссылку или восьмеричную escape-
последовательность. Например, 'n' соответствует символу "n", а '\n '
уже соответствует символу новой строки. Последовательность '\\'
соответствует '\', '\(' соответствует '('.
^
Соответствует положению в начале входной строки. Если
свойство Multiline объекта RegExp установлено в значение True, ^
также соответствует и положению после '\n' или '\r'.
$
Соответствует положению в конце входной строки. Если
свойство Multiline объекта RegExp установлено в значение True, $
также соответствует и положению перед '\n' или '\r'.
*
Соответствует повторению предшествующего подвыражения
ноль или более раз. Например, 'zo*' соответствует 'z' и 'zoo'. *
62
является эквивалентом {0,}.
+
Соответствует повторению предшествующего подвыражения
один или более раз. Например, 'zo+' соответствует 'zo' и 'zoo', но не
соответствует 'z'. + является эквивалентом {1,}.
?
Соответствует повторению предшествующего подвыражения
ноль или один раз. Например, "do(es)?" соответствует "do" в "do" или
в "does". ? является эквивалентом {0,1}
{n}
n является положительным целым числом. Соответствует точно
n-ному количеству повторений. Например, 'o{2}' не соответствует 'o'
в "Bob", но соответствует 2-ум 'o' в "food".
{n,}
n является положительным целым числом. Соответствует хотя
бы n-ному количеству повторений. Например, 'o{2,}' не
соответствует "o" в "Bob" но соответствует всем 'o' в "foooood".
'o{1,}' является эквивалентом 'o+'. 'o{0,}' является эквивалентом 'o*'.
{n,m}
m и n это положительные целые числа, причем n <= m.
Соответствует хотя бы n-ому и не более чем m-ому числу
повторений. Например, "o{1,3}" соответствует первым трем 'o' в
"fooooood". 'o{0,1}' является эквивалентом 'o?'. Обратите внимание,
что Вы не можете размещать пробел между запятой и цифрами.
?
Когда этот символ следует непосредственно за любым другим
квантификатором (*, +, ?, {n}, {n,}, {n,m}), тогда шаблон
соответствия становится "нежадным". "Нежадный" шаблон
соответствует насколько это возможно минимальной части строки, в
которой производится поиск, в то время как заданный по умолчанию
"жадный" шаблон соответствует максимально возможно большей
части этой строки. Например, 'o+?' в строке "oooo" соответствует
одиночному "o", в то время как 'o+' соответствует всем 'o'.
.
Соответствует любому одиночному символу, кроме "\n". Чтобы
шаблон соответствовал любому одиночному символу, включая и "\n",
Источник: https://baza.diplomsite.ru/previewfile/2504