Каранаев Линар Минтимерович Стерлибашево 2017 содержание глава реферативное изложение



бет34/64
Дата02.01.2022
өлшемі1.78 Mb.
#452913
түріИзложение
1   ...   30   31   32   33   34   35   36   37   ...   64
обб русский


Разработка программного кода. Шифровать текст будем с помощьюфункции хог или обычногосмещения. Для того чтобы зашифрованныетексты нельзя было расшифровывать по шаблону, будем предлагатьпользователю самому выбирать число хог, на которое надо смещать символ.

Прежде всего объявите глобальную переменную xr_num типа:

var

Forml: TForml;



xr_num: string;

Теперь займемся командами меню. Обработчик события OnClickдля пункта Файл→Открыть:

procedure TForml.NIClick(Sender: TObject);

begin


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

OpenDialogl.InitialDir := GetCurrentDir;

if not OpenDialogl.Execute

then ShowMessage('File not selected!')

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

Memol.Lines.LoadFromFile(OpenDialogl.FileName);

end;

Здесь мы открываем стандартное диалоговое окно обзора и просимпользователя выбрать текстовый или любой другой файл. После тогокак пользователь выбрал файл, загружаем его в нашу программу.



Обработчик события OnClick для пункта Файл→Сохранить:

procedure TForml.N2Click(Sender: TObject);

begin

Savedialogl.InitialDir := GetCurrentDir;



if not SaveDialogl.Execute

then ShowMessage('File not saved!’)

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

Memol.Lines.SaveToFile(SaveDialogl.FileName);

end;

Открываем диалоговое окно сохранения файла. После того как пользователь выбрал место сохранения файла, извлекаем текст из Memo и сохраняем его в выбранной папке.



Обработчик события OnClick для пункта Файл→Выход:

procedure TForml.N4Click(Sender: TObject);

begin

Close;//закрыть программу



end;

Обработчик события OnClick для пункта Правка→Число XOR:

procedure TForml.XoRlClick(Sender: TObject);

begin


if not InputQuery('XOR', 'Введитечисло xor:', xr_num)

then Exit;

end;

Здесь мы отображает окно для выбора числа хог. Указанное пользователем число будет занесено в переменную xr_num.



Обработчик события OnClick для пункта Правка → Зашифровать/ Расшифровать:

procedure TForml.N5Click(Sender: TObject);

var

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



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

begin


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

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

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

xr:= xr + Chr(Ord(Memol.Text[i]) xorStrToInt(xr_num));

end;

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



Memol.Text := xr;

end;


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

Обработчик события OnClick для пункта Правка → Очистить:

procedure TForml.N8Click(Sender: TObject);

begin


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

end;


Очищаем поле Memo от содержащегося в нем текста.

Обработчик события OnClick для пункта Формат →Перенос по словам:

procedure TForml.N9Click(Sender: TObject);

begin


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

begin


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

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

Memol.ScrollBars := ssBoth;

end


else

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

N9.Checked := True; //устанавливаем флажок

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

Memol.ScrollBars := ssVertical;

end;


end;

По этой команде меню мы проверяем, какое состояние сейчас у пункта Формат → Перенос по словам. Если флажок установлен, то мы сбрасываем его и отображаем горизонтальную полосу прокрутки. В противном случае, устанавливаем флажок и убираем горизонтальную полосу прокрутки.

Обработчик события OnClick для пунктаФормат → Шрифт:

procedure TForml.NIOClick(Sender: TObject);

begin

//Определяем все настройки шрифта и отображаем их



//в диалоговом окне

FontDialogl.Font.Color := Memol.Font.Color; //цвет шрифта

FontDialogl.Font.Style := Memol.Font.Style; //стиль

FontDialogl.Font.Size := Memol.Font.Size; //размер

FontDialogl.Font.Charset := Memol.Font.Charset; //кодировка

FontDialogl.Font.Name := Memol.Font.Name; //название шрифта

if FontDialogl.Execute then

begin //применяем все выбранные настройки

Memol.Font.Color := FontDialogl.Font.Color;

Memol.Font.Style := FontDialogl.Font.Style;

Memol.Font.Size := FontDialogl.Font.Size;

Memol.Font.Charset := FontDialogl.Font.Charset;:

Memol.Font.Name := FontDialogl.Font.Name;

end;


end;

Перед тем как открыть диалоговое окно выбора шрифта, мы определяем все текущие настройки шрифта, чтобы затем отобразить их в диалоговом окне. После того как пользователь нажал в этом окне кнопку ОК,все выбранные настройки шрифта применяются к полю Memo.

Теперь осталось только реализовать автоматическую загрузку файлов, связанных с нашим блокнотом в файл-менеджерах. Для этого создадимобработчик события OnCreate главной формы:

procedureTForml.FormCreate(Sender: TObject);

var

Str: String; //путь к параметру



i: Integer;

begin


xrnum:= '2'; //поумолчаниюсмещение =2

if (ParamCount > 0) then

begin

Str:= ParamStr(l);



//Формируем путь к аргументу

for i:=2 to ParamCount do Str := Str +’ ’+ ParamStr(i) ;

end;

{Если на вход программы поступили параметры, то отображаем



содержимое соответствующего файла в поле Memo}

if Str <>" then Memol.Lines.LoadFromFile(str);

end;

Здесь мы задаем начальное значение для смещения и проверяем, поступили ли на вход программы какие-либо параметры. Если да, то узнаем путь к файлу и отображаем его содержимое в поле Memo. Примершифрования со смещением 10 представлен на рисунке:



[7: 49-54]





Достарыңызбен бөлісу:
1   ...   30   31   32   33   34   35   36   37   ...   64




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет