📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtDlgs;
type
TForm1 = class(TForm)
Memo1: TMemo;
OpenDialog1: TOpenDialog;
Button2: TButton;
Button3: TButton;
Memo2: TMemo;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Label2: TLabel;
Memo3: TMemo;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
pwd:integer; //记录加密密码
function edcode(s:string;key:integer):string;
//参数s:加密或者解密的字符串
//参数key:加密或者解密的密码
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//加密和解密文件
function tform1.edcode(s:string;key:integer):string;
var i,len:integer;
begin
if (key<-255) or (key>255) then
begin
showmessage('密码必须是-255~255之间的整数!');
exit;
end;
result:='';
len:=length(s);
if len>0 then
begin
for i:=0 to len-1 do
//将每个字符的ascii码加上或减去整数key,然后返回相应的字符
result:=result+char(ord(s[i+1])+key);
end;
end;
//加密文件
procedure TForm1.Button3Click(Sender: TObject);
var
F1, F2: TextFile; //文本文件
Ch,str: string;
begin
memo3.Lines.Clear;
memo1.Lines.Clear;
str:='';
pwd:=strtoint(inputbox('请输入加密密码','-255~255之间的整数','111'));//加密密码
if OpenDialog1.Execute then begin //打开加密文件
label4.Caption:='原文件名:'+opendialog1.FileName;
AssignFile(F1, OpenDialog1.Filename);//将加密文件指定给f1
Reset(F1);//打开文件
if SaveDialog1.Execute then begin //保存文件
label5.Caption:='加密文件名:'+savedialog1.FileName;
AssignFile(F2, SaveDialog1.Filename);
Rewrite(F2); //覆盖写入
while not Eof(F1) do //检查是否到文件尾
begin
Readln(F1, Ch);//读取一行,同时将指针移动到下一行开始处
memo3.Lines.Append(ch);
str:=edcode(ch,pwd); //加密本行字符
Writeln(F2, str);//写入加密文件
memo1.Lines.Append(str);
end;
CloseFile(F2); //关闭文件
end;
CloseFile(F1);
end;
end;
//解密文件
procedure TForm1.Button2Click(Sender: TObject);
var
F1, F2: TextFile;
Ch,str: string;
begin
if strtoint(inputbox('请输入解密密码','密码',''))<>pwd then
begin
showmessage('密码错误,请确认后再次输入');
exit;
end;
memo2.Lines.Clear;
str:='';
if OpenDialog1.Execute then begin
AssignFile(F1, OpenDialog1.Filename);
Reset(F1);
if SaveDialog1.Execute then begin
label6.Caption:='解密文件名:'+savedialog1.FileName;
AssignFile(F2, SaveDialog1.Filename);
Rewrite(F2);
while not Eof(F1) do
begin
Readln(F1, Ch);
str:=edcode(ch,-pwd); //解密时执行与加密相反的操作
Writeln(F2, str);
memo2.Lines.Append(str);
end;
CloseFile(F2);
end;
CloseFile(F1);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -