home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / CBVW161U.ZIP / GETACTSL.PAS < prev    next >
Pascal/Delphi Source File  |  1992-05-05  |  5KB  |  152 lines

  1. PROGRAM GETACTSL;
  2.  
  3. USES DOS;
  4.  
  5. TYPE
  6.  
  7.     SystemRec           = RECORD
  8.       BaudRate          : WORD;       { baud rate user is at      }
  9.       ComPort           : BYTE;       { comport currently in user }
  10.       Name              : STRING[51]; { system name               }
  11.       Sysop             : STRING[51]; { sysop's name              }
  12.       TimeOn            : LONGINT;    { time user logged on       }
  13.       TimeUsed          : LONGINT;    { time used so far          }
  14.       Uk                : WORD;       { # of k uploaded by user   }
  15.       Uploads           : WORD;       { # of uploads by user      }
  16.       Dk                : WORD;       { # of k downloaded by user }
  17.       Downloads         : WORD;       { # of downloads by user    }
  18.       Databits          : BYTE;       { databits modem is set to  }
  19.       Stopbits          : BYTE;       { stop bits modem is set to }
  20.       Parity            : CHAR;       { parity modem is set to    }
  21.     END;
  22.  
  23.     UserRec             = RECORD
  24.       UserNumb          : WORD;        { users number on BBS       }
  25.       Name              : STRING[30];  { user's alias              }
  26.       RealName          : STRING[14];  { user's real name          }
  27.       LastOn            : STRING[10];  { date user was last on     }
  28.       LineLen           : BYTE;        { # of columns              }
  29.       PageLen           : BYTE;        { # of screen rows          }
  30.       SL                : BYTE;        { security level            }
  31.       Age               : BYTE;        { age                       }
  32.       Sex               : CHAR;        { sex ('F' or 'M')          }
  33.       Callsign          : STRING[8];   { amatuer radio callsign    }
  34.       Gold              : REAL;        { game money                }
  35.       timerem           : LONGINT;     { Time remaining in secs    }
  36.     END;
  37.  
  38. VAR
  39.  
  40.    RestoreF            : FILE;
  41.    RestoreB            : ARRAY[1..3000] OF BYTE;
  42.    bytesread           : WORD;
  43.  
  44.    SysOpLog            : TEXT;
  45.    gfilespath,
  46.    datapath,
  47.    SysOpFFN            : STRING;
  48.    thesysop,
  49.    cosysop,
  50.    okANSI,
  51.    remote              : BOOLEAN;
  52.    TheUser             : UserRec;
  53.    TheSystem           : SystemRec;
  54.  
  55.  
  56. FUNCTION Exist(fn : STRING) : BOOLEAN;
  57.   VAR
  58.     s : SearchRec;
  59.   BEGIN
  60.     FindFirst(fn,anyfile,s);
  61.     Exist := DosError = 0;
  62.   END;
  63.  
  64. PROCEDURE GetParameterFile;
  65.   VAR
  66.     chainfile : TEXT;
  67.     r         : REAL;
  68.     n         : INTEGER;
  69.     i         : STRING;
  70.     error     : BOOLEAN;
  71.   BEGIN
  72.     IF (ParamCount <> 1) THEN BEGIN
  73.       Writeln(^g,^g,'[>ERROR<] - CHAIN.TXT PATH/FILENAME NOT FOUND ON COMMAND LINE');
  74.       HALT(1);
  75.     END;
  76.  
  77.     IF NOT Exist(paramstr(1)) THEN BEGIN
  78.       Writeln(^g,^g,'[>ERROR<] - UNABLE TO FIND FILE "',paramstr(1),'"');
  79.       HALT(1);
  80.     END;
  81.  
  82.     Assign(chainfile,paramstr(1));
  83.     Reset(chainfile);
  84.     IF (IOResult <> 0) THEN BEGIN
  85.       Writeln(^g,^g,'[>ERROR<] - ERROR READING FILE "'+paramstr(1),'"');
  86.       HALT(1);
  87.     END;
  88.     ReadLN(chainfile, TheUser.UserNumb);
  89.     ReadLN(chainfile, TheUser.name);
  90.     ReadLN(chainfile, TheUser.realname);
  91.     ReadLN(chainfile, i);
  92.     ReadLN(chainfile, TheUser.age);
  93.     ReadLN(chainfile, TheUser.sex);
  94.     ReadLN(chainfile, i);
  95.     ReadLN(chainfile, i);
  96.     ReadLN(chainfile, TheUser.linelen);
  97.     ReadLN(chainfile, TheUser.pagelen);
  98.     ReadLN(chainfile, TheUser.sl);
  99.     ReadLN(chainfile, n);
  100.     cosysop := (n = 1);
  101.     ReadLN(chainfile, n);
  102.     thesysop := (n = 1);
  103.     ReadLN(chainfile, n);
  104.     OkANSI := (n = 1);
  105.     ReadLN(chainfile, n);
  106.     remote := (n = 1);
  107.     ReadLn(chainfile,r);
  108.     TheUser.timerem := TRUNC(r);
  109.     ReadLN(chainfile, GFilesPath);
  110.     ReadLN(chainfile, DataPath);
  111.     ReadLN(chainfile, i);
  112.     SysopFFN := GFilesPath + i;
  113.     ReadLn(chainfile, i);
  114.     ReadLN(chainfile, TheSystem.comport);
  115.     ReadLN(chainfile, TheSystem.name);
  116.     ReadLN(chainfile, TheSystem.Sysop);
  117.     ReadLN(chainfile, TheSystem.TimeOn);
  118.     ReadLN(chainfile, TheSystem.timeused);
  119.     Close(chainfile);
  120.   END;
  121.  
  122. PROCEDURE ExamineRestore;
  123.   VAR
  124.     xx : WORD;
  125.   BEGIN
  126.     Assign(RestoreF,'RESTORE.WWV');
  127.     Reset(RestoreF,1);
  128.     IF IOResult <> 0 THEN BEGIN
  129.       Writeln(' You must shrink to create RESTORE.WWV ');
  130.       HALT;
  131.     END;
  132.     BlockRead(RestoreF,RestoreB,2900,bytesread);
  133.     Close(RestoreF);
  134.     FOR xx := 1 TO bytesread DO
  135.       IF RestoreB[xx] = TheUser.Sl THEN
  136.         Writeln(' Possible Match occured at : ',xx);
  137.   END;
  138.  
  139. BEGIN
  140.   GetParameterFile;
  141.   Writeln;
  142.   Writeln;
  143.   Writeln('Security level found in CHAIN.TXT was : ',TheUser.sl);
  144.   ExamineRestore;
  145.   Writeln;
  146.   Writeln('Most like occurence that will be valid for actsl will be after');
  147.   Writeln('location 250,  nearer to 265');
  148.   Writeln('You can use the information provided here to correctly enter a');
  149.   Writeln('value for CBVCFG.USERREC entry "RESTORE.WWV ACTSL offset"');
  150.   Writeln;
  151. END.
  152.