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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

RusLetters: TRusLetters = [\'А\'..’я’];

var

fmEncryptingAutoKey: TfmEncryptingAutoKey;

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

...

Листинг 12.19.

Функция получения ключа

function TfmEncryptingAutoKey.GetKey: String;

var

i: Integer;

begin

Result := \'\

for i := 1 to Length(edKey.Text) do

if not (edKey.Text[i] in RusLetters) then

Exit;

Result := edKey.Text;

end;

Рассмотрим работу функций EncryptString и DecryptString. На входе они получают строку, которую требуется преобразовать, и первичный ключ. Внешне они очень похожи, но все же отличаются, и эти отличия существенны. Функция шифрования выполняет следующие действия. В цикле осуществляется проход по строке и проверяется, является ли очередной символ буквой русского алфавита. В случае положительного ответа этот символ преобразуется при помощи очередного символа ключа и добавляется в его конец. Преобразование осуществляется по правилу, которое мы указывали при рассмотрении шифра Виженера: li =xi + yi (modm), то есть символ открытого текста и символ ключа складываются с последующим сокращением этой суммы по модулю т, где т – общее количество букв в алфавите (листинг 12.20).

...

Листинг 12.20.

Функция шифрования строки с помощью ключа и криптограммы

function TfmEncryptingAutoKey.EncryptString(strEncryptMsg: String;

var strKey: String): String;

var

i: Integer;

begin

for i := 1 to Length(strEncryptMsg) do

if strEncryptMsg[i] in RusLetters then

begin

strEncryptMsg[i] := Chr(((Ord(strEncryptMsg[i]) –

Ord(\'А\')) + (Ord(strKey[1]) – Ord(\'А\'))) mod 64 + Ord(\'А\'));

Delete(strKey, 1, 1);

strKey := strKey + strEncryptMsg[i];

end;

Result := strEncryptMsg;

end;

Функция дешифрования строки с помощью ключа и криптограммы делает следующее. Как и в предыдущей функции, в цикле осуществляется проход по строке и проверяется, является ли очередной символ буквой русского алфавита. При положительном ответе данный символ сначала добавляется в конец ключа, а потом только осуществляется его преобразование. Обратное преобразование символа проходит по следующему правилу: li = xi – yi (mod m), то есть из символа преобразованного текста вычитается символ ключа с последующим сокращением этой разности по модулю т, где т – общее количество букв в алфавите. Если результат отрицателен, то происходит дополнение до положительного числа значением т. Как это реализовано, показано в листинге 12.21.

...

Листинг 12.21.

Функция дешифрования строки с помощью ключа и криптограммы

function TfmEncryptingAutoKey.DecryptString(strDecryptMsg: String;

var strKey: String): String;

var

i: Integer;

begin

for i := 1 to Length(strDecryptMsg) do

if strDecryptMsg[i] in RusLetters then

begin

strKey := strKey + strDecryptMsg[i];

strDecryptMsg[i] := Chr((((Ord(strDecryptMsg[i]) –

Ord(\'А\')) – (Ord(strKey[1]) – Ord(\'А\'))) + 64) mod 64 +

Ord(\'А\'));

Delete(strKey, 1, 1);

end;

Result := strDecryptMsg;

end;

Обработчики событий OnClick вызывают функцию EncryptDecrypt с необходимыми параметрами. У этой функции всего три параметра. Первый указывает на источник текста сообщения, требующего преобразования, второй указывает на приемник преобразованного текста сообщения. Последний параметр определяет тип преобразования текста сообщения. Если он равен True, то текст сообщения шифруется и помещается в приемник. В противном случае текст сообщения дешифруется и также помещается в приемник. Это происходит следующим образом. Сначала получается ключ, при помощи которого будет осуществляться преобразование текста сообщения. Если ключ некорректен, то выдаем соответствующее предупреждение и больше ничего не делаем. Если ключ корректен, то в зависимости от последнего параметра вызываем соответствующую функцию преобразования для каждой строки источника текста сообщения и добавляем результат в приемник (листинг 12.22).

...

Листинг 12.22.

Функция шифрования/дешифрования текста сообщения

//bEncrypt = True – шифровать

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

Интервал:

Закладка:

Сделать

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

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


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

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

x