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

Здесь есть возможность читать онлайн «Валерий Борисок - Delphi. Трюки и эффекты» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Delphi. Трюки и эффекты: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Delphi. Трюки и эффекты»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

Delphi. Трюки и эффекты — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Delphi. Трюки и эффекты», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
...

Листинг 12.6.

Функция предварительной подготовки алфавита преобразования

procedure TfmSubstitution.RecalcAlphabet(nKey: Integer);

var

Ch: Char;

i: Integer;

begin

//предварительно все символы в алфавите шифрования

//соответствуют символам из незашифрованного алфавита

for Ch := Low(RusDstAlphabet) to High(RusDstAlphabet) do

RusDstAlphabet[Ch] := Ch;

//формируем алфавит отдельно для каждого из регистров букв

//здесь для верхнего

for i := 1 to vleSubst.RowCount – 1 do

RusDstAlphabet[vleSubst.Cells[nKey, i][1]] :=

vleSubst.Cells[1 – nKey, i][1];

//здесь для нижнего

for i := 1 to vleSubst.RowCount – 1 do

RusDstAlphabet[LowCaseRus(vleSubst.Cells[nKey, i][1])] :=

LowCaseRus(vleSubst.Cells[1 – nKey, i][1]);

end;

Еще одной вспомогательной функцией является функция преобразования строки символов с помощью алфавита преобразования в соответствии с указанной операцией. Работа ее довольно проста. В цикле осуществляется прямой проход по строке, и каждый символ, принадлежащий ей, заменяется соответствующим символом алфавита преобразования. В итоге мы получаем зашифрованную либо дешифрованную строку. Посмотреть исходный код данного метода можно в листинге 12.7.

...

Листинг 12.7.

Преобразование строки при помощи массива сопоставления

function TfmSubstitution.EncryptDecryptString(strMsg: String):

String;

var

i: Integer;

begin

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

for i := 1 to Length(strMsg) do

strMsg[i] := RusDstAlphabet[strMsg[i]];

Result := strMsg;

end;

Теперь, используя все описанные функции, мы без труда можем зашифровать либо дешифровать сообщение. Например, чтобы зашифровать его, мы подготавливаем массив соответствия букв вызовом функции RecalcAlphabet с параметром 0. После чего для каждой строки открытого текста вызываем функцию EncryptDecryptString и в качестве результата получаем зашифрованную строку. Обработчики событий OnClick соответствующих кнопок шифруют либо дешифруют весь текст. Основная идея каждого из методов заключается в том, чтобы проверить корректность заданной перестановки, после чего производится предварительная подготовка алфавита сопоставления, и далее сообщение преобразуется (листинг 12.8).

...

Листинг 12.8.

Шифрование/дешифрование сообщения

procedure TfmSubstitution.btnEncryptMessageClick(Sender:

TObject);

var

i: Integer;

begin

//проверяем корректность ввода перестановки

if ValidateRearrangement then

begin

//создаем алфавит преобразования открытого текста

RecalcAlphabet(0);

//предотвращаем перерисовку компонента до тех пор,

//пока не зашифруем все строки сообщения

mmEncryptMessage.Lines.BeginUpdate;

//очищаем текстовый редактор

mmEncryptMessage.Clear;

//шифруем открытый текст построчно

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

mmEncryptMessage.Lines.Add(EncryptDecryptString

(mmDecryptMessage.Lines[i]));

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

mmEncryptMessage.Lines.EndUpdate;

end

else

MessageDlg(\'Ошибка: символы подстановки заданы неверно\',

mtError, [mbOk], 0);

end;

procedure TfmSubstitution.btnDecpyptMessageClick(Sender:

TObject);

var

i: Integer;

begin

//проверяем корректность ввода перестановки

if ValidateRearrangement then

begin

//создаем алфавит преобразования шифрованного текста

RecalcAlphabet(1);

mmDecryptMessage.Lines.BeginUpdate;

mmDecryptMessage.Clear;

//дешифруем шифрованный текст построчно

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

mmDecryptMessage.Lines.Add(EncryptDecryptString

(mmEncryptMessage.Lines[i]));

mmDecryptMessage.Lines.EndUpdate;

end

else

MessageDlg(\'Ошибка: символы подстановки заданы неверно\',

mtError, [mbOk], 0);

end;

В итоге мы получили вполне рабочий вариант приложения, способного без особого труда шифровать и дешифровать сообщения. На рис. 12.2 представлен результат работы данного приложения.

Рис. 12.2. Результат работы приложения «Шифр простой подстановки»

12.3. Транспозиция

Следующий шифр, который мы будем рассматривать, называется транспозицией с фиксированным периодом d. В этом случае сообщение делится на группы символов длины d и к каждой группе применяется одна и та же перестановка. Эта перестановка является ключом и может быть задана некоторой перестановкой первых d целых чисел.

Таким образом, для d = 5 в качестве перестановки можно взять 23154. Это будет означать, что т1т2 тЗт4т5т6т7т8т9 тЮ… переходит в т2 тЗт1т5т4т7т8т6т10т9… Последовательное применение двух или более транспозиций будет называться составной транспозицией. Если периоды этих транспозиций d1…., ds, то, очевидно, в результате получится транспозиция периода d, где d – наименьшее общее кратное d1…., ds.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Delphi. Трюки и эффекты»

Представляем Вашему вниманию похожие книги на «Delphi. Трюки и эффекты» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Delphi. Трюки и эффекты»

Обсуждение, отзывы о книге «Delphi. Трюки и эффекты» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x