Студопедия — Приложение 3. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Приложение 3. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,






unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DES, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Memo1: TMemo;

Button1: TButton;

Label3: TLabel;

Memo2: TMemo;

Button2: TButton;

Memo3: TMemo;

Label4: TLabel;

Memo4: TMemo;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject); // вызывается при клике на кнопку

procedure Memo1Change(Sender: TObject); // вызывается при изменении многострочного текстового поля

procedure FormCreate(Sender: TObject); // вызывается при создании формы когда запускаем прогу

procedure Edit1Change(Sender: TObject); // вызывается при изменении текстового поля

procedure Memo2Change(Sender: TObject);

private

{ Private declarations }

public

Data:TBitString;

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); // процедура для зашифровки

Var

I:Integer;

S:String;

begin

IF ((Length(Memo1.Text)mod 8 <> 0) OR (Length(Edit1.Text)mod 8 <> 0)) Then // если длина строк в соответствующих полях не равна 8, то выдать сообщение

Begin

MessageBox(Handle,

‘Количество букв в сообщении должно быть кратно 8 (перевод строки считается за 2 символа) ’ + #10#13 ‘ключ должен состоять из 8 символов',

Nil,MB_ICONSTOP);

Exit; //прерывает исполнение процедуры

End;

SetLength(Data,0);

I:=1;

While I<=Length(Memo1.Text) Do // пока I меньше длины введённого текста делать

Begin

S:=Copy(Memo1.Text,I,8); //копировать подстроку из memo1 длиной 8 символов начиная с позиции I

Data:=ConcatBits([Data,DESEncode(S,Edit1.Text)]); //объединить две строки побитно

I:=I+8;

End;

Memo2.Text:=BinToAnsiStr(Data); //переводим полученную битовую комбинацию в читабельную строку и выводим в текстовое поле

end;

procedure TForm1.Button2Click(Sender: TObject); // процедура для декодирования. Работает также, как и для кодирования, только входным текстом является ранее закодированный текст

var

I:Integer;

begin

IF ((Length(Memo2.Text)mod 8 <> 0) OR (Length(Edit1.Text)mod 8 <> 0)) Then

Begin

MessageBox(Handle,

‘Количество букв в сообщении должно быть кратно 8 (перевод строки считается за 2 символа) ’ + #10#13 ‘ключ должен состоять из 8 символов',

Nil,MB_ICONSTOP);

Exit;

End;

SetLength(Data,0);

I:=1;

While I<=Length(Memo2.Text) Do

Begin

Data:=ConcatBits([Data,DESDecode(Copy(Memo2.Text,I,8),Edit1.Text)]);

I:=I+8;

End;

Memo1.Text:=BinToAnsiStr(Data);

end;

procedure TForm1.Memo1Change(Sender: TObject); //выводит на экран число – количество символов, которое было ведено в текстовое поле

begin

IF Memo1.Text<>'' Then

Memo3.Text:=BinToStr(AnsiStrToBin(Memo1.Text))

Else Memo3.Clear;

Label2.Caption:='Message - ('+IntToStr(Length(Memo1.Text))+' characters)';

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Memo1.OnChange(Self);

Edit1.OnChange(Self);

end;

procedure TForm1.Edit1Change(Sender: TObject); // аналогично

begin

Label4.Caption:=IntToStr(Length(Edit1.Text))+' characters';

end;

procedure TForm1.Memo2Change(Sender: TObject); // аналогично

begin

IF Memo2.Text<>'' Then

Memo4.Text:=BinToStr(AnsiStrToBin(Memo2.Text))

Else Memo4.Clear;

Label3.Caption:='Encoded message - ('+IntToStr(Length(Memo2.Text))+' characters)';

end;end.

 

 

 







Дата добавления: 2015-06-15; просмотров: 345. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Метод Фольгарда (роданометрия или тиоцианатометрия) Метод Фольгарда основан на применении в качестве осадителя титрованного раствора, содержащего роданид-ионы SCN...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

Разновидности сальников для насосов и правильный уход за ними   Сальники, используемые в насосном оборудовании, служат для герметизации пространства образованного кожухом и рабочим валом, выходящим через корпус наружу...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия