[Back to MAIL SWAG index] [Back to Main SWAG index] [Original]

    {
    AR> Could someone give me sample source code to access the RA USER FILE
    This should help get you started...
    }
    Program RA_User_Viewer;
    Uses Crt, Dos;
    {$I STRUCT.200}
    Var
       UserRec : USERSrecord;
       UserFile : File of USERSrecord;
       SysPath,UserPath,ConfigPath : String;
       SysRec: CONFIGrecord;
       SysFile : File of CONFIGrecord;
       X,a : Integer;
       Done : Boolean;
       Ch : Char;

    Function FixPath(Path : String): String;
        Begin
        If Path[Length(Path)] <> '\' Then
            Path := Path+'\';
         FixPath := Path;
        End;
    procedure drawscreen;
    begin;
        textattr:=14;
        gotoxy(25,1);
       write(' Remote Access User Viewer');
       textattr:=$01;
       gotoxy(1,2);
       for a:=1 to 80 do write('Í');
       gotoxy(1,23);
       for a:=1 to 80 do write('Ä');
       textattr:=15;
       gotoxy(11,24);
       Write('(PgUp) Last User     (PgDn) Next User     (ESC) Exit');
    end;

    Begin
       ClrScr;
       SysPath := GetEnv('RA');           {[drive]:\RA}
           SysPath := Fixpath(SysPath);   {[drive]:\RA\}
           ConfigPath := SysPath + 'CONFIG.RA'; {[drive]:\RA\CONFIG.RA}
       {$I-}
       Assign(SysFile,ConfigPath);
       Reset(SysFile);
        {$I+}
        If IOresult <> 0 then Begin
        WriteLn(' Error Reading ',ConfigPath);
        WriteLn(' Exiting with Errorlevel 1');
        Halt(1);  {Exit at errorlevel 1,[drive]:\RA\CONFIG.RA not Found}
        End;      {Is the enviroment variable set?}
       read(SysFile,SysRec); {open up CONFIG.RA and find the Path to the}
                             { Messsage base,(where users.bbs is stored) }
       Close(SysFile);
       UserPath := FixPath(SysRec.MsgBasePath); { here it is! }
       UserPath:=UserPath + 'USERS.BBS';
       {$I-}
       Assign(UserFile,UserPath);
       Reset(UserFile);
       {$I+}
        If IOresult <> 0 then Begin
         WriteLn(' Error Reading ',UserPath);
         WriteLn(' Exiting with Errorlevel 2');
         Halt(2);{Exit At Errorlevel 2,[drive]:\Msgbase\Users.bbs not found}
        End;
       X := 0;
       Done := False;
    Repeat
       textattr:=$07;
       ClrScr;
       Seek(UserFile, X);
       Read(UserFile, UserRec);
       gotoxy(1,3);
       with UserRec do
       Begin
       Writeln('User #    : ',X+1);
       Writeln('Name      : ',Name);
       Writeln('Handle    : ',Handle);
       WriteLn('Security  : ',Security);
       WriteLn('Location  : ',Location);
       WriteLn('Data #    : ',DataPhone);
       WriteLn('Home #    : ',VoicePhone);
       WriteLn('Birthday  : ',BirthDate);
       Write('Last Call : ',LastDate);
       WriteLn(' ',Lasttime);
              case Sex of
                   1 : writeln ('Sex       : Male');
                   2 : writeln ('Sex       : Female');
                  else writeln ('Sex       : Unknown');
                end;
       WriteLn('Addr 1    : ',Address1);
       WriteLn('Addr 2    : ',Address2);
       WriteLn('Addr 3    : ',Address3);
       Writeln('Msg''s Posted : ',Msgsposted);
       Writeln('Last Read    : ',Lastread);
       Writeln('Msg Group    : ',Msggroup);
       Writeln('Msg Area     : ',Msgarea);
       WriteLn('Comment      : ',Comment);
       gotoxy(46,3);
       writeln('Files Downloaded   : ',Downloads);
       gotoxy(46,4);
       writeln('Download Kilobytes : ',Downloadsk);
       gotoxy(46,5);
       Writeln('Files Uploaded     : ',Uploads);
       gotoxy(46,6);
       writeln('Upload Kilobytes   : ',Uploadsk);
       gotoxy(46,7);
       writeln('Credits  : ',Credit);
       gotoxy(46,8);
       writeln('Protocol : ',DefaultProtocol);
       gotoxy(46,9);
       writeln('Language : ',Language);
       gotoxy(46,10);
       writeln('Number of Calls :',NoCalls);
       end; {with}
        drawscreen;
        Ch := Readkey;
       if (ch=#0) then ch:=readkey;
       Case ch Of
         #81 : If X < FileSize(UserFile)-1 Then Inc(X);
         #73 : If X > 0 Then Dec(X);
         #27 : Done := True;
    end;
    Until done;
    Close(UserFile);
    textattr:=$07;
    clrscr;
    End.

[Back to MAIL SWAG index] [Back to Main SWAG index] [Original]