📄 userunt.pas
字号:
unit userunt;
interface
uses
Windows, SysUtils,Classes,constunt,structureunt;
type
Tuser=class
constructor Create;
destructor Destroy;override;
private
userlist:array of userinfo;
function getusertoid(s:String):integer;
procedure savetofile;
procedure loadfromfile;
public
function getcount:integer;
function getuserinfoex(s:string):userinfo; overload;
function getuserinfoex(n:integer):userinfo; overload;
function login_checkpass(s1,s2:string):boolean;
function create_newuser(params:string):boolean;
function checkuser(s:string):boolean;
procedure deluser(s:string);
procedure adduser(p:userinfo);overload;
procedure adduser(params:string);overload;
procedure modifyuser(s:string;p:userinfo);overload;
procedure modifyuser(n:integer;p:userinfo);overload;
procedure delgroup(s:string);
procedure modifygroup(s1,s2:string);
end;
implementation
uses shareunit;
function Tuser.getcount:integer;
begin
result:=high(userlist)+1;
end;
function Tuser.getusertoid(s:String):integer;
var i:integer;
begin
result:=0;
if getcount>0 then
for i:=low(userlist) to high(userlist) do
if not userlist[i].nullity then
if userlist[i].md5name=s then
begin
result:=i+1;
break;
end;
end;
function Tuser.checkuser(s:string):boolean;
begin
result:=getusertoid(s)>0;
end;
function Tuser.getuserinfoex(s:string):userinfo;
var p:integer;
begin
result:=userlist[0];
p:=getusertoid(s);
if p>0 then result:=userlist[p-1];
end;
function Tuser.getuserinfoex(n:integer):userinfo;
begin
result:=userlist[n];
end;
procedure Tuser.modifyuser(n:integer;p:userinfo);
begin
userlist[n-1]:=p;
end;
procedure Tuser.modifyuser(s:string;p:userinfo);
var n:integer;
begin
n:=getusertoid(s);
if n>0 then modifyuser(n,p);
end;
procedure Tuser.deluser(s:string);
var n:integer;
begin
n:=getusertoid(s);
if n>1 then userlist[n-1].nullity:=true;
end;
procedure Tuser.adduser(p:userinfo);
var n:integer;
begin
if getusertoid(p.md5name)=0 then
begin
n:=high(userlist)+1;
setlength(userlist,n+1);
userlist[n]:=p;
end;
end;
procedure Tuser.adduser(params:string);
var tmp:userinfo;
begin
tmp.md5name:=getparamitem(params,'md5name');
tmp.userid:=getparamitem(params,'userid');
tmp.uname:=getparamitem(params,'uname');
tmp.tel:=getparamitem(params,'tel');
tmp.business:=getparamitem(params,'business');
tmp.dept:=getparamitem(params,'dept');
tmp.mytext:='什么也没留下.';
tmp.groupid:='myfirends';
tmp.gname:='我的好友';
tmp.md5pic:=defuserpic;
tmp.localip:=getparamitem(params,'fromip');
tmp.checkup:=0;
tmp.dlghwnd:=0;
tmp.hishwnd:=0;
tmp.status:=0;
tmp.nullity:=false;
tmp.dx:=0;
tmp.dy:=0;
tmp.dw:=0;
adduser(tmp);
end;
//------------------------------------------------------------------------------
// 修改本地分组
//------------------------------------------------------------------------------
procedure Tuser.modifygroup(s1,s2:string);
var i:integer;
begin
if getcount>0 then
for i:=low(userlist) to high(userlist) do
if userlist[i].groupid=s1 then
userlist[i].gname:=s2;
end;
//------------------------------------------------------------------------------
// 删除本地分组
//------------------------------------------------------------------------------
procedure Tuser.delgroup(s:string);
var i:integer;
begin
if getcount>0 then
for i:=low(userlist) to high(userlist) do
if userlist[i].groupid=s then
begin
userlist[i].groupid:='myfirends';
userlist[i].gname:='我的好友';
end;
end;
//------------------------------------------------------------------------------
// 从文件装入
//------------------------------------------------------------------------------
procedure Tuser.loadfromfile;
var filenames:string;
files:file of userinfo;
tmpuser:userinfo;
p:integer;
begin
filenames:=extractfilepath(application_name)+loginuser+'.dat';
if fileexists(filenames) then
try
assignfile(Files,filenames);
reset(files);
while not Eof(files) do
begin
read(files,tmpuser);
if getusertoid(tmpuser.userid)=0 then
begin
tmpuser.status:=3;
tmpuser.dlghwnd:=0;
tmpuser.hishwnd:=0;
tmpuser.dx:=0;
tmpuser.dy:=0;
tmpuser.dw:=0;
p:=high(userlist)+1;
setlength(userlist,p+1);
userlist[p]:=tmpuser;
end;
end;
finally
closefile(files);
end;
end;
//------------------------------------------------------------------------------
// 保存列表
//------------------------------------------------------------------------------
procedure Tuser.savetofile;
var filenames:string;
files:file of userinfo;
i:integer;
begin
if getcount>0 then
try
filenames:=extractfilepath(application_name)+loginuser+'.dat';
assignfile(Files,filenames);
rewrite(files);
for i:=1 to getcount do
if not userlist[i-1].nullity then
write(files,userlist[i-1]);
finally
closefile(files);
end;
end;
//------------------------------------------------------------------------------
// 验证密码
//------------------------------------------------------------------------------
function Tuser.login_checkpass(s1,s2:string):boolean;
var md5:string;
begin
result:=false;
loadfromfile;
if (getcount>0)and(userlist[0].pwd=s2) then
begin
md5:=md5encode(loginuser+'@'+mycomputername);
deluser(md5);
if login_hide then
userlist[0].status:=2
else userlist[0].status:=0;
userlist[0].localip:=mylocalip;
userlist[0].md5name:=md5;
result:=true;
end else userlist:=nil;
end;
//------------------------------------------------------------------------------
// 新建用户
//------------------------------------------------------------------------------
function Tuser.create_newuser(params:string):boolean;
var filenames:string;
files:file of userinfo;
tmpuser:userinfo;
begin
result:=false;
tmpuser.md5name:=md5encode(loginuser+'@'+mycomputername);
tmpuser.userid:=getparamitem(params,'userid');
tmpuser.pwd:=md5encode(getparamitem(params,'userid')+getparamitem(params,'pwd1'));
tmpuser.uname:=getparamitem(params,'uname');
tmpuser.tel:=getparamitem(params,'tel');
tmpuser.business:=getparamitem(params,'business');
tmpuser.dept:=getparamitem(params,'dept');
tmpuser.mytext:='什么也没留下.';
tmpuser.groupid:='myfirends';
tmpuser.gname:='我的好友';
tmpuser.md5pic:=defuserpic;
tmpuser.localip:='127.0.0.1';
tmpuser.nullity:=false;
tmpuser.checkup:=0;
tmpuser.dlghwnd:=0;
tmpuser.hishwnd:=0;
tmpuser.dx:=0;
tmpuser.dy:=0;
tmpuser.dw:=0;
filenames:=extractfilepath(application_name)+tmpuser.userid+'.dat';
if not fileexists(filenames) then
try
assignfile(Files,filenames);
rewrite(files);
write(files,tmpuser);
result:=true;
finally
closefile(files);
end;
end;
//------------------------------------------------------------------------------
// 创建 iconex
//------------------------------------------------------------------------------
constructor Tuser.Create;
begin
end;
//------------------------------------------------------------------------------
// 释放 iconex
//------------------------------------------------------------------------------
destructor Tuser.Destroy;
begin
savetofile;
userlist:=nil;
inherited Destroy;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -