Delphi. Учимся на примерах | страница 22



Рис. 7.3. Пример шифрования со смещением 10

Полный исходный код модуля

Полный исходный код модуля программы Блокнот-шифровальщик представлен в листинге 7.1.

Листинг 7.1. Модуль программы Блокнот-шифровальщик

>unit Unit1


>interface


>uses

> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls Forms, Dialogs, StdCtrls, Menus;


>type TForm1 = class(TForm)

> Memo1: TMemo;

> menu1: TMainMenu;

> File1: TMenuItem;

> Edit1: TMenuItem;

> N1: TMenuItem;

> N2: TMenuItem;

> N3: TMenuItem;

> N4: TMenuItem;

> N5: TMenuItem;

> N7: TMenuItem;

> N8: TMenuItem;

> OpenDialog1: TOpenDialog;

> SaveDialog1: TSaveDialog;

> FontDialog1: TFontDialog;

> N6: TMenuItem;

> N9: TMenuItem;

> N10: TMenuItem;

> XoR1: TMenuItem;

> procedure N1Click(Sender: TObject);

> procedure N2Click(Sender: TObject)

> procedure N4Click(Sender: TObject)

> procedure N8Click(Sender: TObject)

> procedure N5Click(Sender: TObject)

> procedure N9Click(Sender: TObject);

> procedure N10Click(Sender: TObject);

> procedure FormCreate(Sender: TObject);

> procedure XoR1Click(Sender: TObject);

>private

> { Private declarations }

>public

> { Public declarations }

>end;


>var

> Form1: TForm1;

> xr_num: string;


>implementation

>{$R *.dfm}


>procedure TForm1.N1Click(Sender: TObject);

>begin

> //начинаем обзор с текущей папки

> OpenDialog1.InitialDir:= GetCurrentDir;

> if not OpenDialog1.Execute then ShowMessage('File not selected!')

> else //загружаем выбранный файл в Memo

>  Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

>end;


>procedure TForm1.N2Click(Sender: TObject);

>begin

> SaveDialog1.InitialDir:= GetCurrentDir;

> if not SaveDialog1.Execute then ShowMessage('File not saved!')

> else //сохраняем в файл

>  Memo1.Lines.SaveToFile(SaveDialog1.FileName);

>end;


>procedure TForm1.N4Click(Sender: TObject);

>begin

> Close; //выход из программы

>end;


>procedure TForm1.N8Click(Sender: TObject);

>begin

> Memo1.lines.Clear; //очистка Memo

>end;


>procedure TForm1.N5Click (Sender: TObject);

>var

> xr: string; //зашифрованный текст

> i: integer; //счетчик цикла begin

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

> begin //перебираем каждый символ в тексте

>  //выполняем указанное пользователем смещение

>  xr:= xr + Chr(Ord(Memo1.Text[i]) xor StrToInt(xr_num));

> end;

> //заменяем оригинальный текст на зашифрованный

> Memo1.Text := xr;

>end;


>procedure TForm1.N9Click(Sender: TObject);

>begin

> if N9.Checked then //если флажок установлен

> begin

>  N9.Checked:= False; //сбрасываем флажок

>  //Отображаем горизонтальную полосу прокрутки

>  Memo1.ScrollBars:= ssBoth;

> end

> else begin //если флажок не установлен