Delphi. Учимся на примерах | страница 22
Рис. 7.3. Пример шифрования со смещением 10
Полный исходный код модуля
Полный исходный код модуля программы Блокнот-шифровальщик представлен в листинге 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 //если флажок не установлен