СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ. 1. Архангельский, А.Я. 100 компонентов общего назначения библиотеки Delphi / А
1. Архангельский, А.Я. 100 компонентов общего назначения библиотеки Delphi / А. Я. Архангельский. — Москва : Бином, 2002. – 272 с.
2. Бобровский, С.И. Delphi 7. Учебный курс/ С. И. Бобровский – СПб.: Питер, 2004. – 736 с.
3. Культин, Н.Б. Основы программирования в Delphi 7/ Н. Б. Культин – СПб.: БХВ.- СПб, 2003. – 608 с.
4. Фаронов, В.В.Delphi. Программирование на языке высокого уровня: Учебник для вузов/ В. В. Фаронов – СПб.: Питер, 2006. – 640 с.
ПРИЛОЖЕНИЕ А
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
str: WideString; w,w0: string; op:boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var w,w0,w1: string; i,k: integer;
begin
str:=Memo1.Text; memo2.Text:=''; w0:=''; w:=Edit1.Text;
if (w='') or (str='') then begin MessageDlg('Присутствуют пустые поля',mtInformation, [mbOK], 0);
exit; end;
if Button1.Caption='Зашифровать' then begin k:=1;
for i:=1 to Length(str) do begin
Memo2.Text:=Memo2.Text+str[i]+w[k];
k:=k+1;
if k>length(w) then k:=1;
end;
end
else begin
if op then for i:=1 to Length(str) do
if (str[i]=#$A) then Delete(str,i,1);
for i:=1 to Length(str) do
if not (odd(i)) then w0:=w0+str[i];
k:=1;
for i:=1 to length(w0) do begin
w1:=w1+w[k];
k:=k+1;
if k>length(w) then k:=1; end;
if w1=w0 then begin
for i:=1 to length(str) do begin
if (str[i]=#$D) and (op) then Memo2.Text:=Memo2.Text+#10;
if odd(i) then Memo2.Text:=Memo2.Text+str[i]; end; end
else MessageDlg('Неправильный ключ', mtWarning, [mbcancel],0); exit; end;
op:=false;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Label1.Caption='Исходный текст' then begin
Label1.Caption:='Зашифрованный текст';
Label2.Caption:='Исходный тескт';
Button1.Caption:='Дешифровать';
end
else
begin
Label1.Caption:='Исходный текст';
Label2.Caption:='Зашифрованный текст';
Button1.Caption:='Зашифровать';
end; end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
#13: Button1.Click; end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Memo2.Clear;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
op:=true;
OpenDialog1.Title:='Открыть файл';
with OpenDialog1, Memo1 do
if Execute then
begin
Lines.LoadFromFile(FileName);
OpenDialog1.FileName:=FileName;
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
SaveDialog1.Title:='Сохранить исходный текст';
SaveDialog1.FileName:='Исходный текст';
with SaveDialog1, Memo1 do
if Execute then
begin
Lines.SaveToFile(FileName);
SaveDialog1.FileName:=Filename;
end;
SaveDialog1.Title:='Сохранить зашифрованный текст';
SaveDialog1.FileName:='Зашифрованный текст';
with SaveDialog1, Memo2 do
if Execute then
begin
Lines.SaveToFile(FileName);
SaveDialog1.FileName:=Filename;; end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
MessageDlg('Программа Шифратор предназначена для шифровки-дешифровки текста.'+#13+'Для выполнения шифровки необходимо ввести текст в поле "Исходный текст", ввести ключ, который необходимо запомнить (иначе дешифровка текста не будет выполнена), и нажать "Зашифровать".'+#13+'Для обратной операции необходимо поменять направление перевода клавишей "<-->" и провести соответствующие операции'+#13+'Также программа выполняет открытие из файла и сохранение текста в файл.'+#13+'Программа разработана студентом 1-го курса БарГУ Гуриновичем Алексеем в 2012 году',mtInformation,[mbOK],0 ) ;
end;
end.