My-library.info
Все категории

Валерий Борисок - Delphi. Трюки и эффекты

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Валерий Борисок - Delphi. Трюки и эффекты. Жанр: Программы издательство неизвестно, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Delphi. Трюки и эффекты
Издательство:
неизвестно
ISBN:
нет данных
Год:
неизвестен
Дата добавления:
17 сентябрь 2019
Количество просмотров:
280
Читать онлайн
Валерий Борисок - Delphi. Трюки и эффекты

Валерий Борисок - Delphi. Трюки и эффекты краткое содержание

Валерий Борисок - Delphi. Трюки и эффекты - описание и краткое содержание, автор Валерий Борисок, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info
«Delphi. Трюки и эффекты», как и все издания данной серии, адресована тем, кто хочет научиться делать с помощью уже знакомых программных пакетов новые, интересные вещи. В первой части книги многое говорится о среде разработки Delphi (самых последних версий) и программировании на языке Object Pascal. Благодаря этому издание подходит и новичкам, и начинающим программистам. Вторая (основная) часть книги описывает удивительные возможности, скрытые в языке, и на примерах учит читателя программистским фокусам – от «мышек-невидимок» и «непослушных окон» до воспроизведения МРЗ и управления офисными программами Word и Excel из приложений Delphi. Купив эту книгу, вы пройдете непростой путь к вершинам программистского мастерства весело и интересно.

Delphi. Трюки и эффекты читать онлайн бесплатно

Delphi. Трюки и эффекты - читать книгу онлайн бесплатно, автор Валерий Борисок
Назад 1 ... 54 55 56 57 58 59 Вперед

nCount := 0;

FillChar(AbsFrequency, SizeOf(AbsFrequency), 0);

for i := 0 to mmEncryptMessage.Lines.Count – 1 do

for j := 1 to Length(mmEncryptMessage.Lines[i]) do

begin

//очередной символ сообщения

Ch := mmEncryptMessage.Lines[i][j];

//проверяем, принадлежит ли символ

//множеству русских букв

if Ch in RusLetters then

begin

//подсчитываем количество данной буквы в отдельности

//и в совокупности со всеми русскими буквами

AbsFrequency[UpCaseRus(Ch)] :=

AbsFrequency[UpCaseRus(Ch)] + 1;

Inc(nCount);

end;

end;

if nCount = 0 then

begin

MessageDlg('Дешифровать сообщение нельзя, так как' +

' отсутствует русский текст', mtError, [mbOk], 0);

Exit;

end;

//вычисляем относительные частоты букв в закодированном

//сообщении

FillChar(RelFreqInMsg, SizeOf(RelFreqInMsg), 0);

for i := Low(RusSrcAlphabet) to High(RusSrcAlphabet) div 2 do

RelFreqInMsg[RusSrcAlphabet[i]] :=

AbsFrequency[RusSrcAlphabet[i]] / nCount;

//перебираем все возможные ключи и выбираем тот, при

//использовании которого частоты появления русских букв

//в закодированном сообщении наиболее близки к частотам

//появления русских букв в русском языке, то есть сумма

//абсолютных разностей частот букв должна быть наименьшей

h := High(RusSrcAlphabet) div 2 + 1;

MinDelta := h;

for i := 1 to h – 1 do

begin

Delta := 0;

for j := 0 to h – 1 do

Delta := Delta + Abs(RelFreqInLang[RusSrcAlphabet[j]] –

RelFreqInMsg[RusSrcAlphabet[(i + j + h) mod h]]);

//очередная сумма разностей меньше всех предыдущих?

if MinDelta > Delta then

begin

//запоминаем ее…

MinDelta := Delta;

//… и запоминаем ключ, при котором получено

//данное значение

nHackKey := i;

end;

end;

edKey.Text := IntToStr(nHackKey);

h := High(RusSrcAlphabet) + 1;

RecalcAlphabet(h – nHackKey mod h);

mmDecryptMessage.Lines.BeginUpdate;

mmDecryptMessage.Clear;

for i := 0 to mmEncryptMessage.Lines.Count – 1 do

mmDecryptMessage.Lines.Add(DecryptString(

mmEncryptMessage.Lines[i], nHackKey));

mmDecryptMessage.Lines.EndUpdate;

end;

Итог работы написанного приложения показан на рис. 12.9. Как видите, у нас все получилось!

Рис. 12.9. Результат работы приложения «Шифр Цезаря – взлом»

Хочется отметить, что частотный анализ производится не только по частоте использования букв, но и по частоте употребления определенных слов и даже фраз. Например, если ведется переписка между Димой и Николаем, то вероятность, что Дима начнет свое обращение со слов «ДорогойНиколай» больше, чем то, что он начнет его произвольным набором символов «ЫКр2!». Поэтому, когда вы сами попытаетесь вскрыть чей-то шифр, помните о такой возможности, но не забывайте, что существуют и значительно более сложные шифры, чем рассмотренные здесь. Часто для улучшения стойкости этих шифров могут применяться различные методики сжатия информации, чтобы было сложнее воспользоваться частотным анализом, так как в этом случае частоты будут почти одинаковы.

Заключение

Вот и закончилась эта книга. К сожалению, рассмотреть абсолютно все нюансы и интересные подробности программирования в Windows практически невозможно (особенно в книге такого объема). Но мы надеемся, что описанные приемы, алгоритмы и примеры использования возможностей как библиотеки Deplhi, так и Windows API хотя бы пролили свет и на некоторые механизмы работы этой ОС, и на другие области, в которых программирование применяется весьма успешно (речь о криптографии).

При написании книги мы старались минимизировать количество примеров, которым невозможно найти применение на практике. Насколько это нам удалось, судить только вам. Нам лишь остается пожелать вам успехов, уважаемый читатель, в программистской практике (неважно, с использованием Delphi или других языков и сред программирования).

Приложение 1 Коды и обозначения основных клавиш

В табл. П1.1 приведены коды, обозначения целочисленных констант и описания основных клавиш.

Таблица П1

. 1 . Коды, обозначения и описания клавиш

Приложение 2 Оконные стили

В приложении представлены таблицы, описывающие следующие оконные стили: общие (табл. П2.1), дополнительные (табл. П2.2), стили кнопок (табл. П2.3), статических надписей (табл. П2.4), текстовых полей (табл. П2.5), списков (табл. П2.6) и стили раскрывающихся списков (табл. П2.7).

Таблица П2.1

. Общие оконные стили

Таблица П2.2. Дополнительные оконные стили

Таблица П2.3. Стили кнопок

Таблица П2.4. Стили статических надписей

Таблица П2.5. Стили текстовых полей

Таблица П2.6. Стили списков (ListBox)

Таблица П2.7. Стили раскрывающихся списков (ComboBox)

Приложение 3 Сообщения

В таблицах данного приложения приводятся обозначения констант, описания сообщений, а также назначение параметров wParam и lParam сообщений. Часто параметры wParam или 1 Par am являются указателями на структуры. Для экономии места объявления этих структур не приводятся: их можно найти в модуле Windows.

Сообщения типа WM_SETTEXT, WM_SETFONT и подобных им могут как получаться, так и отправляться, то есть могут использоваться для управления окнами. Для большинства сообщений, обозначения которых начинаются с GET, требуемое значение возвращается функцией отправки сообщения.

Итак, в приложении представлены таблицы с перечислением некоторых часто используемых сообщений (табл. П3.1), уведомлений от элементов управления (табл. П3.2), сообщений для управления кнопками (табл. П3.З), статическими надписями (табл. П3.4), текстовым полем (табл. П3.5), списком (табл. П3.6) и сообщений для управления раскрывающимся списком (табл. П3.7).

Таблица П3.1

. Некоторые часто используемые сообщения

Таблица П3.2. Уведомления от элементов управления

Таблица П3.3. Сообщения для управления кнопками

Таблица П3.4. Сообщения для управления статическими надписями

Таблица П3.5. Основные сообщения для управления текстовым полем

Таблица П3.6. Основные сообщения для управления списком (ListBox)

Таблица П3.7. Основные сообщения для управления раскрывающимся списком (ComboBox)

Назад 1 ... 54 55 56 57 58 59 Вперед

Валерий Борисок читать все книги автора по порядку

Валерий Борисок - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


Delphi. Трюки и эффекты отзывы

Отзывы читателей о книге Delphi. Трюки и эффекты, автор: Валерий Борисок. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.