home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 270.img / FORUM25C.ZIP / MAILRET.PAS < prev    next >
Pascal/Delphi Source File  |  1989-01-01  |  2KB  |  102 lines

  1. {$R-,S-,I-,D-,V-,B-,N-,L- }
  2. {$O+}
  3.  
  4. unit mailret;
  5.  
  6.  
  7. {/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\}
  8.  
  9. interface
  10.  
  11. {/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\}
  12.  
  13.  
  14. uses gentypes,gensubs,subs1,configrt,statret,textret;
  15.  
  16. Function searchmail (startpt,usernum:integer):integer;
  17. Procedure delmail (n:integer);
  18. Procedure addmail (sentto:integer; line:integer; VAR me:message);
  19. Function getnummail (un:integer):integer;
  20.  
  21.  
  22. {/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\}
  23.  
  24. implementation
  25.  
  26. {/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\}
  27.  
  28.  
  29. Function searchmail (startpt,usernum:integer):integer;
  30. VAR cnt:integer;
  31.     m:mailrec;
  32. begin
  33.   searchmail:=0;
  34.   if startpt>=filesize(mfile)-1 then exit;
  35.   startpt:=startpt+1;
  36.   seek (mfile,startpt); che;
  37.   for cnt:=startpt to filesize(mfile)-1 do begin
  38.     read (mfile,m); che;
  39.     if m.sentto=usernum then begin
  40.       searchmail:=cnt;
  41.       exit
  42.     end
  43.   end
  44. end;
  45.  
  46. Procedure delmail (n:integer);
  47. VAR m:mailrec;
  48.     c:integer;
  49. begin
  50.   seek (mfile,n);
  51.   read (mfile,m);
  52.   deletetext (m.line);
  53.   for c:=n to filesize(mfile)-2 do begin
  54.     seek (mfile,c+1);
  55.     read (mfile,m);
  56.     seek (mfile,c);
  57.     write (mfile,m)
  58.   end;
  59.   seek (mfile,filesize(mfile)-1);
  60.   truncate (mfile);
  61.   if filesize(mfile)=0 then begin
  62.     m.sentto:=0;
  63.     seek (mfile,0);
  64.     write (mfile,m)
  65.   end
  66. end;
  67.  
  68. Procedure addmail (sentto : integer; line:integer; VAR me:message);
  69. VAR m:mailrec;
  70.     u:userrec;
  71. begin
  72.   m.sentby := unum;
  73.   m.anon  := me.anon;
  74.   m.when  := now;
  75.   m.title := me.title;
  76.   m.line := line;
  77.   m.sentto := sentto;
  78.   m.read := false;
  79.   m.Anonpost := FALSE;
  80.   Seek(mfile,filesize(mfile));
  81.   Write(mfile,m);
  82.   Seek(ufile,sentto);
  83.   Read(ufile,u);
  84.   if match(u.handle,sysopname) then newmail:=newmail+1
  85. End;
  86.  
  87. Function getnummail (un:integer):integer;
  88. VAR cnt:integer;
  89.     m:mailrec;
  90.     total:integer;
  91. begin
  92.   total:=0;
  93.   seek (mfile,0);
  94.   for cnt:=1 to filesize(mfile) do begin
  95.     read (mfile,m);
  96.     if m.sentto=un then total:=total+1
  97.   end;
  98.   getnummail:=total
  99. end;
  100.  
  101. end.
  102.