⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userunt.pas

📁 絮语2007视频聊天软件源程序.仅供参考
💻 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 + -