📄 changepwd.pas
字号:
unit changePwd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TfrmChangePwd = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
oldPwd: TEdit;
newPwd: TEdit;
confirmPwd: TEdit;
btnOk: TButton;
btnCancel: TButton;
private
{ Private declarations }
function checkOldPwd(userName:string):boolean; //判断旧密码存在与否
function checkNewPwd:boolean; //判断两次输入的新密码是否一致
public
{ Public declarations }
procedure changePwd(userName:string); //改变当前用户密码
end;
var
frmChangePwd: TfrmChangePwd;
implementation
{$R *.dfm}
{修改用户名为参数的用户密码}
procedure TfrmChangePwd.changePwd(userName:string);
var
f:file;
s1,ss2,s2,s3:string[30];
nr:integer;
begin
ss2:=newPwd.Text;
if checkOldPwd(userName) and checkNewPwd then//可以修改
begin
//打开配置文件定位到当前用户,修改密码
assignFile(f,'sys.ini');
reSet(f,1);
while not eof(f) do
begin
blockRead(f,s1,12,nr);
if s1=userName then
begin
blockWrite(f,ss2,12,nr);
closeFile(f);
exit;
end;
blockRead(f,s2,12,nr);
blockRead(f,s3,24,nr);
end;
closeFile(f);
end;
end;
{判断两次输入的新密码是否一致,一致返回true,不一致返回false}
function TfrmChangePwd.checkNewPwd: boolean;
begin
if newPwd.Text=confirmPwd.Text then //两次输入的新密码一致
result:=true
else result:=false;
end;
{判断旧密码存在与否,存在返回true,不存在返回false}
function TfrmChangePwd.checkOldPwd(userName:string): boolean;
var
f:file;
nr:integer;
s1,s2,s3:string[30];
begin
assignFile(f,'sys.ini'); //file变量与配置文件关联
reSet(f,1); //打开文件
repeat //读取每一条记录
blockRead(f,s1,12,nr);
blockRead(f,s2,12,nr);
blockRead(f,s3,24,nr);
if (nr>10) and (s2=oldPwd.Text) and (s1=userName) then
begin //发现当前用户的密码和输入的旧密码一致
closeFile(f);
result:=true;
exit;
end;
until (nr=0);
closeFile(f);
result:=false;
exit;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -