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

📄 taskunt.pas

📁 絮语2007视频聊天软件源程序.仅供参考
💻 PAS
字号:
unit taskunt;

interface

uses
  Windows, SysUtils,Classes,structureunt;

type
  Ttask=class
     constructor Create;
     destructor  Destroy;override;
   private
     tasklist:array of Ttaskinfo;
     function gettasktoid(s:String):integer;
     procedure savetofile;
   public
     function getcount:integer;
     procedure loadfromfile;
     function gettaskinfoex(s:string):Ttaskinfo; overload;
     function gettaskinfoex(n:integer):Ttaskinfo; overload;
     procedure modifytask(s:string;p:Ttaskinfo); overload;
     procedure modifytask(n:integer;p:Ttaskinfo); overload;
     procedure addtask(dt:tdatetime;firendid,params:string;bool:boolean);
     procedure deltask(md5code:string);
     procedure cleartask;
   end;

implementation
uses shareunit;

function Ttask.getcount:integer;
begin
result:=high(tasklist)+1;
end;

function Ttask.gettasktoid(s:String):integer;
var i:integer;
begin
result:=0;
if getcount>0 then
for i:=low(tasklist) to high(tasklist) do
  if not tasklist[i].nullity then
  if tasklist[i].md5code=s then
     begin
     result:=i+1;
     break;
     end;
end;

function Ttask.gettaskinfoex(s:string):Ttaskinfo;
var p:integer;
begin
result:=tasklist[0];
p:=gettasktoid(s);
if p>0 then result:=tasklist[p-1];
end;

function Ttask.gettaskinfoex(n:integer):Ttaskinfo;
begin
result:=tasklist[n-1];
end;

procedure Ttask.modifytask(n:integer;p:Ttaskinfo);
begin
tasklist[n-1]:=p;
end;

procedure Ttask.modifytask(s:string;p:Ttaskinfo);
var n:integer;
begin
n:=gettasktoid(s);
if n>0 then modifytask(n,p);
end;

procedure Ttask.addtask(dt:tdatetime;firendid,params:string;bool:boolean);
var p:integer;
    tmptask:Ttaskinfo;
begin
tmptask.msgtime:=dt;
tmptask.firendid:=firendid;
tmptask.tasktype:=bool;
tmptask.nullity:=false;
StrPCopy(tmptask.msgtext,params);
tmptask.md5code:=md5encode(firendid+params);
if gettasktoid(tmptask.md5code)=0 then
   begin
   p:=high(tasklist)+1;
   setlength(tasklist,p+1);
   tasklist[p]:=tmptask;
   end;
end;

procedure Ttask.deltask(md5code:string);
var tmptask:Ttaskinfo;
begin
tmptask:=gettaskinfoex(md5code);
tmptask.nullity:=true;
modifytask(md5code,tmptask);
end;

procedure Ttask.cleartask;
var i:integer;
begin
if getcount>0 then
for i:=1 to getcount do
  tasklist[i-1].nullity:=true;
end;
//------------------------------------------------------------------------------
// 从文件装入
//------------------------------------------------------------------------------
procedure Ttask.loadfromfile;
var filenames:string;
    files:file of Ttaskinfo;
    tmptask:Ttaskinfo;
    p:integer;
begin
filenames:=extractfilepath(application_name)+loginuser+'.tsk';
if fileexists(filenames) then
  try
  assignfile(Files,filenames);
  reset(files);
  while not Eof(files) do
    begin
    read(files,tmptask);
    if gettasktoid(tmptask.md5code)=0 then
       begin
       p:=high(tasklist)+1;
       setlength(tasklist,p+1);
       tasklist[p]:=tmptask;
       end;
    end;
  finally
  closefile(files);
  end;
end;

//------------------------------------------------------------------------------
// 保存列表
//------------------------------------------------------------------------------
procedure Ttask.savetofile;
var filenames:string;
    files:file of Ttaskinfo;
    i:integer;
begin
if getcount>0 then
  try
  filenames:=extractfilepath(application_name)+loginuser+'.tsk';
  assignfile(Files,filenames);
  rewrite(files);
  for i:=1 to getcount do
  if not tasklist[i-1].nullity then
     write(files,tasklist[i-1]);
  finally
  closefile(files);
  end;
end;
//------------------------------------------------------------------------------
// 创建
//------------------------------------------------------------------------------
constructor Ttask.Create;
begin

end;

//------------------------------------------------------------------------------
// 释放
//------------------------------------------------------------------------------
destructor Ttask.Destroy;
begin
  savetofile;
  tasklist:=nil;
  inherited Destroy;
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -