home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / MISC / DESIRE15.ZIP / INSTALL.DAT / INFO.ZIP / XRD-DEV1.ZIP / XRD-NAV.ZIP / NAV.PAS < prev    next >
Pascal/Delphi Source File  |  1997-03-29  |  6KB  |  199 lines

  1. Program NewuserAppViewer;
  2.  
  3. Uses Deskit,Files,DesStr;
  4.  
  5. Var Username,Input,Temp_Str:String;
  6.                           { input strings Temp_Str and Input 
  7.                           { output string Username as @MCI1@ in NAVFND.PCB }
  8.  
  9.     EndSubLoop,EndLoop:Boolean;
  10.                           { variables to end loops lile WHILE/DO and
  11.                             REPEAT/UNTIL }
  12.  
  13.     SearchNode:Byte;      { which ANSWERx.TXT file are we reading ? }
  14.     Found:Boolean;        { we just found a user }
  15.     F:Text;               { for textfiles }
  16.     i:integer;            { aid counter }
  17.     C:Byte;               { to read a byte from the user }
  18.  
  19.     AidMCI:MCIRPTR;       { for the @MCIx@-codes }
  20.  
  21.     ShowCont:Boolean;
  22.     EverFound,            { did we ever find a user ? }
  23.     JustShown:Boolean;    { did we just have a user on the screen or
  24.                             were we looking for one ? 
  25.                             to estimate the amount of enters at 
  26.                             the end 
  27.                           }
  28.  
  29. Begin
  30. EverFound:=false;
  31. If ParamStr(2)<>'' then
  32.  If Door.SecLvl<StrToInt(ParamStr(2)) then 
  33.   Begin
  34.    AllWriteln('No rights to execute this door.');
  35.    AllWriteln('');
  36.    CloseAll;
  37.    Exit;
  38.   End;
  39.  
  40.  
  41. TypeMCIFile('NAVTOP.PCB');
  42. Input:=Allreadln(30);
  43.  
  44.  
  45.     If Input='' then 
  46.      Begin;
  47.      EndSubLoop:=True;
  48.      Endloop:=True;
  49.      TypeMCIFile('NAVBORT.PCB');
  50.      End else
  51.       Begin;
  52.         GetMem(Control^.MCI^,SizeOf(MCIRecord));
  53.         AidMCI:=Control^.MCI^;
  54.         AidMCI^.mcistr:=ToUpcase(Input);
  55.         AidMCI^.NExt:=NIL;
  56.         TypeMCIFile('NAVSRCH.PCB');
  57.         AidMCI:=Control^.MCI^;
  58.  
  59.         AidMCI:=Control^.MCI^;
  60.         FreeMem(Control^.MCI^,SizeOf(MCIRECORD));
  61.       End;
  62.       
  63. EndLoop:=False;SearchNode:=1;Found:=False;
  64. ShowCont:=True;
  65. JustShown:=False;
  66.  
  67.  
  68. While not EndLoop do
  69.  Begin
  70.   If Exists(Config.Scripts+'\ANSWER'+IntToStr(SearchNode,0)+'.TXT') then
  71.    Begin;
  72.     { ok, list exists }
  73.     Assign(f,Config.Scripts+'\ANSWER'+IntToStr(SearchNode,0)+'.TXT');
  74.     Reset(f);
  75.  
  76.     Readln(f,Temp_str);
  77.     EndSubLoop:=False;
  78.  
  79.     While not EndSubLoop do
  80.      Begin
  81.       If Eof(f) then EndSubLoop:=True else
  82.  
  83.       If (Chobstring(Temp_str,5,5,false)='\----') then
  84.        Begin { this is a string, the next line gives the username }
  85.         Readln(f,Temp_str);
  86.  
  87.         Username:='';
  88.         i:=11;
  89.         While (i<=Length(Temp_Str)) and (Temp_str[i]<>',') do
  90.          Begin
  91.           Username:=Username+Temp_str[i];
  92.           Inc(i);
  93.          End;
  94.  
  95.         For i:=1 to (Length(Username)-Length(Input))+1 do
  96.          If ToUpcase(Copy(Username,i,Length(Input)))=
  97.             ToUpcase(Input) then
  98.              Begin { found! }
  99.                 { show it! }
  100.               EverFound:=True;
  101.               GetMem(Control^.MCI^,SizeOf(MCIRecord));
  102.               AidMCI:=Control^.MCI^;
  103.               AidMCI^.mcistr:=Username;
  104.               AidMCI^.NExt:=NIL;
  105.               TypeMCIFile('NAVFND.PCB');
  106.               AidMCI:=Control^.MCI^;
  107.               
  108.               AidMCI:=Control^.MCI^;
  109.               FreeMem(Control^.MCI^,SizeOf(MCIRECORD));
  110.  
  111.               C:=AllGetch;
  112.               If Upcase(Chr(C))='Q' then
  113.                Begin;
  114.                 EndLoop:=True;
  115.                 EndSubLoop:=True;
  116.                 AllWriteln('Quit');
  117.                 AllWriteln('');
  118.                 AllWriteln('');
  119.                End else
  120.               If Upcase(Chr(C))<>'N' then
  121.                Begin
  122.                 JustShown:=True;
  123.                 AllWriteln('Yes');
  124.                 AllWriteln('');
  125.                 AllWriteln('');
  126.               TypeMCIFile('NAVHDR.PCB'); { header }
  127.                 
  128.                 Found:=True;
  129.                  While (Chobstring(Temp_str,5,5,false)<>'\----') and (not Eof(F)) do
  130.                   Begin
  131.                    AllWriteln(Temp_Str);
  132.                    Readln(f,Temp_Str);
  133.                   End;
  134.                {Show;}
  135.  
  136.               TypeMCIFile('NAVCONT.PCB'); { continue searching ? }
  137.               C:=AllGetch;
  138.               If (ToUpcase(Chr(C))<>'N') and (ToUpcase(Chr(C))<>'Q') then
  139.                Begin
  140.                 Allwrite('Yes');
  141.                 AllWriteln('');
  142.                 AllWriteln('');
  143.                 Found:=False;
  144.         GetMem(Control^.MCI^,SizeOf(MCIRecord));
  145.         AidMCI:=Control^.MCI^;
  146.         AidMCI^.mcistr:=ToUpcase(Input);
  147.         AidMCI^.NExt:=NIL;
  148.         TypeMCIFile('NAVSRCH.PCB');
  149.         AidMCI:=Control^.MCI^;
  150.  
  151.         AidMCI:=Control^.MCI^;
  152.         FreeMem(Control^.MCI^,SizeOf(MCIRECORD));
  153.                End else
  154.                 Begin
  155.                  Allwrite('No');
  156.                 AllWriteln('');
  157.                 AllWriteln('');
  158.                  EndSubloop:=True;
  159.                  EndLoop:=True;
  160.                 End;
  161.  
  162.                End else
  163.                 Begin;
  164.                 ShowCont:=False;
  165.                 Found:=False;
  166.                 AllWriteln('No');
  167.                 AllMoveUp(3);
  168.                 JustShown:=False;
  169.                 End;
  170.  
  171.  
  172.  
  173.              End
  174.        End else Readln(f,Temp_str);
  175.      End; { sub }
  176.  
  177.     Close(f);
  178.    End; { exist }
  179.  
  180.   Inc(SearchNode);
  181.   If SearchNode>Config.Howmanynodes then EndLoop:=True;
  182.  end; {endloop }
  183.  
  184.  If not Found then 
  185.   Begin
  186.   If (not JustShown) and (Input<>'') and EverFound then
  187.    Begin
  188.     AllWriteln('');
  189.     AllWriteln('');
  190.     AllWriteln('');
  191.     AllWriteln('');
  192.    End;
  193.  
  194.   TypeMCIFile('NAVNOT.PCB');
  195.   End;
  196.  
  197. CloseAll;
  198. End.
  199.