Contributor: MARTIN WOODS { 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.