Program ACCT; { Example for the NwAcct unit / NWTP 0.6, (c) 1995, R. Spronk } { Displays all login/logout account notes in the HET$ACCT.DAT file. } uses nwMisc,nwAcct; LABEL q; {$I-} Var f:File of byte; b,b2 :Byte; t,w :word; s :string; nTime:TnovTime; buf :Array[1..4096] of byte; NoteAKA :TNoteRecord ABSOLUTE buf; ChargeAKA:TChargeRecord ABSOLUTE buf; Begin FileMode:=0; {open file read-only } assign(f,'F:\system\net$acct.dat'); reset(f); IF Ioresult<>0 then begin writeln('Accounting file couldn''t be found..'); halt(1); end; REPEAT read(f,b); {length of record} read(f,b2); If IOresult<>0 then goto q; buf[1]:=b2; buf[2]:=b; for t:=1 to NoteAKA.Length do begin read(f,buf[t+2]); if IOresult>0 then goto q; end; IF (NoteAKA.RecType=RT_ACCOUNT_NOTE) and (swap(NoteAKA.CommentType) IN [3,4]) then with NoteAKA do begin If swap(CommentType)=3 then write('Logon of ') else write('Logoff of '); write(HexStr(Lswap(ClientObjId),8)); write(' from address ',HexDumpStr(Comment.Net,8),':', HexDumpStr(Comment.Node,12)); Move(TimeStamp,ntime.year,6); ntime.dayOfWeek:=0; NovTime2String(ntime,s);delete(s,1,4); write(' at: ',s); writeln; end; UNTIL eof(f); q: ; close(f); end.