*/
Got something to write about? Check out our Article Builder.
*/

View \MAINR1.PAS

Full Source Code To Vision Bbs System

Submitted By: WEBMASTER
Rating: (Not rated) (Rate It)


{$R-,S-,I-,D-,F+,V-,B-,N-,L+ }

unit mainr1;

interface

uses gentypes,configrt,textret,gensubs,subs1,userret,statret;

procedure showinfoforms (uname:mstr; form:integer){ UNAME='' shows all }
function validfname (name:lstr):boolean;
function searchboard (name:sstr):integer;
function numfeedback:integer;
procedure trimmessage (var m:message);

implementation

procedure showinfoforms (uname:mstr; form:integer){ UNAME='' shows all }
var lnum,un,cnt:integer;
    u:userrec;

  procedure showone;
  var ff:text;
      fn:lstr;
      me:message;
      k:char;
      found:boolean;
      i:integer;
      teleg:integer;

  begin
    if ((u.infoform=-1) and (form=1)) or ((u.infoform2=-1) and (form=2)) or
    ((u.infoform3=-1) and (form=3)) or ((u.infoform4=-1) and (form=4)) or
    ((u.infoform5=-1) and (form=5)) then begin
      writeln (^B'That user has no information form.');
      exit
    end;
    fn:=configset.textfiledi+'infoform';
    if form>0 then fn:=fn+'.'+strr(form);
    assign (ff,fn);
    reset (ff);
    if ioresult<>0 then begin
      close (ff);
      lnum:=ioresult;
      writeln (^B'No information form is present.');
      exit
    end;
    if form=1 then teleg:=u.infoform else if form=2 then teleg:=u.infoform2 else if
    form=3 then teleg:=u.infoform3 else if form=4 then teleg:=u.infoform4 else
    if form=5 then teleg:=u.infoform5;
    reloadtext (teleg,me);
    writeln (^M,me.text[1],^M^M);
    lnum:=1;
    while not (break or eof(ff)) do begin
      read (ff,k);
      if k='|' then begin
        read(ff,k);
        i:=valu(k)*10;
        read(ff,k);
        i:=i+valu(k);
        ansicolor(i);
        read(ff,k)
      end;
      if k='@' then if lnum>me.numlines then writeln('No Answer')
         else begin
         lnum:=lnum+1;
         writeln(me.text[lnum]);
         read(ff,k)
      end;
      if k='*'
        then if lnum>me.numlines
          then writeln ('No answer')
          else begin
            lnum:=lnum+1;
            writeln (me.text[lnum])
          end
        else write (k)
    end;
    textclose (ff)
  end;

begin
  if uname='' then begin
    writeln (^B^M'          Showing All Forms');
    seek (ufile,1);
    for cnt:=1 to numusers do begin
      read (ufile,u);
        writeln (^M^M,u.handle,^M);
        showone;
      if xpressed then exit
    end
  end else begin
    un:=lookupuser (uname);
    if un=0 then writeln (^B'No such user.') else begin
      seek (ufile,un);
      read (ufile,u);
      showone
    end
  end
end;

function validfname (name:lstr):boolean;
const invalid:set of char=[#0..#31,'"',']','[',':','\','>','<','/','?','*',
  '|','+','=',';', ',' ,#127..#255];
var p,cnt:integer;
    k:char;
    dotfound:boolean;
begin
  validfname:=false;
  dotfound:=false;
  if (length(name)>12) or (length(name)<1) then exit;
  for p:=1 to length(name) do begin
    k:=upcase(name[p]);
    if k in invalid then exit;
    if k='.' then begin
      if dotfound then exit;
      dotfound:=true;
      if (p<length(name)-3) or (p=1) then exit
    end
  end;
  validfname:=not devicename(name)
end;

function searchboard (name:sstr):integer;
var bi:sstr;
    cnt:integer;
begin
  seek (bifile,0);
  for cnt:=0 to filesize(bifile)-1 do begin
    read (bifile,bi);
    if match(bi,name) then begin
      searchboard:=cnt;
      exit
    end
  end;
  searchboard:=-1
end;

function numfeedback:integer;
var ffile:file of mailrec;
begin
  assign (ffile,'Feedback');
  reset (ffile);
  if ioresult<>0 then begin
    numfeedback:=0;
    rewrite (ffile)
  end else numfeedback:=filesize (ffile);
  close (ffile)
end;

procedure trimmessage (var m:message);
var cnt:integer;
begin
  for cnt:=1 to m.numlines do
    while m.text[cnt][length(m.text[cnt])]=' ' do
      m.text[cnt][0]:=pred(m.text[cnt][0]);
  while (m.numlines>0) and (m.text[m.numlines]='') do
    m.numlines:=m.numlines-1
end;

begin
end.

corner
© 1996-2008 CommunityHeaven LLC. All rights reserved. Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
North American business development: Nicolai Wadstrom. Publisher: Lars Hagelin.