Разработка программного кода. Шифровать текст будем с помощьюфункции хог или обычногосмещения. Для того чтобы зашифрованныетексты нельзя было расшифровывать по шаблону, будем предлагатьпользователю самому выбирать число хог, на которое надо смещать символ.
Прежде всего объявите глобальную переменную 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]
Достарыңызбен бөлісу: |