BBS: Inland Empire Archive Date: 03-20-93 (21:11) Number: 130 From: OLIVIER MASSE Refer#: NONE To: STEVE PERRY Recvd: NO Subj: MAXIMUS BBS Conf: (2) Quik_Bas
SP> Has anyone out there done any Quickbasic programming with
SP> Maximus BBS?
Here's some code to read the USERS.BBS of Maximus BBS that
was taken from here not so long ago. Thanks to Mysterious
Stan for this!
----- Cut Here -----
DEFINT A-Z
TYPE UserRec
Name AS STRING * 36 ' 36
City AS STRING * 36 ' 72
Alias AS STRING * 21 ' 93
Phone AS STRING * 15 ' 108
LastRead AS INTEGER ' 110
TimeRemain AS INTEGER ' 112
Password AS STRING * 16 ' 128
TimesCalled AS INTEGER ' 130
Help AS STRING * 1 ' 131
Rsvd1 AS STRING * 2 ' 133
Video AS STRING * 1 ' 134
Nulls AS STRING * 1 ' 135
Bits1 AS STRING * 1 ' 136
Rsvd2 AS STRING * 2 ' 138
Bits2 AS STRING * 2 ' 140
Priv AS STRING * 1 ' 141
Rsvd3 AS STRING * 19 ' 160
StructLen AS STRING * 2 ' 162
OnLineTime AS INTEGER ' 164
DelFlag AS INTEGER ' 166
Rsvd4 AS STRING * 8 ' 174
ScrWidth AS STRING * 1 ' 175
ScrLength AS STRING * 1 ' 176
Credit AS INTEGER ' 178
Debit AS INTEGER ' 180
XPriv AS STRING * 2 ' 182
XPDate AS INTEGER ' 184 Need Date to INT Routine
XPTime AS INTEGER ' 186 Need Time to INT Routine
XMins AS STRING * 4 ' 190
XFlags AS STRING * 1 ' 191
XReserved AS STRING * 1 ' 192
LUDate AS INTEGER ' 194 Need Date to INT Routine
LuTime AS INTEGER ' 196 Need Time to INT Routine
UserKeys AS STRING * 4 ' 200 /\
Language AS STRING * 1 ' 201 ||
Protocol AS STRING * 1 ' 202 Available in Tom
KUpload AS LONG ' 206 Hanlin's PBCLONE
KDnload AS LONG ' 210 Library
KDnloadTdy AS LONG ' 214
LMsgArea AS STRING * 10 ' 224
LFilArea AS STRING * 10 ' 234
Compress AS STRING * 1 ' 235
Rsvd5 AS STRING * 1 ' 236
Extra AS STRING * 4 ' 240
END TYPE
DIM User AS UserRec
'Be sure to test this on a COPY of your USER.BBS file
OPEN "USER.BBS" FOR RANDOM AS #1 LEN = LEN(User)
MaxRec = LOF(1) / LEN(User)
X = 1
GetRec:
CLS
GET #1, X, User
PRINT "User ===============> "; User.Name;
PRINT " ";
PRINT "Record " + STR$(X) + " of " + STR$(MaxRec)
PRINT "User City ==========> "; User.City
PRINT "User Alias==========> "; User.Alias
PRINT "User Phone =========> "; User.Phone
PRINT "LastRead =========> "; STR$(User.LastRead)
PRINT "Time Remaining =====> "; STR$(User.TimeRemain)
PRINT "Password ===========> "; User.Password
PRINT "Times Called =======> "; STR$(User.TimesCalled)
PRINT "Help Level =========> "; ASC(User.Help)
IF ASC(User.Video) = 0 THEN
Video$ = "TTY"
ELSEIF ASC(User.Video) = 1 THEN
Video$ = "ANSI"
ELSEIF ASC(User.Video) = 2 THEN
Video$ = "AVATAR"
END IF
PRINT "Video ==============> "; Video$
PRINT "Nulls ==============> "; ASC(User.Nulls)
PRINT "Bits1 ==============> "; ASC(User.Bits1)
PRINT "Bits2 ==============> "; ASC(User.Bits2)
PRINT "Access Level =======> "; ASC(User.Priv)
PRINT "StructLen ==========> "; ASC(User.StructLen)
PRINT "Time On Line =======> "; STR$(User.OnLineTime)
PRINT "Delete Flag ========> "; STR$(User.DelFlag)
PRINT "Screen Width =======> "; ASC(User.ScrWidth)
PRINT "Screen Length ======> "; ASC(User.ScrLength)
PRINT "Credit =============> "; STR$(User.Credit)
PRINT "Debit ==============> "; STR$(User.Debit)
PRINT "XPriv ==============> "; User.XPriv
PRINT "XPDate =============> "; User.XPDate
PRINT "XPMins =============> "; User.XMins;
GOSUB WaitKey
CLS
PRINT "XFlags =============> "; User.XFlags
PRINT "XReserved ==========> "; User.XReserved
PRINT "LuDate =============> "; User.LuDate
PRINT "UserKeys ===========> "; User.UserKeys
PRINT "Language ===========> "; User.Language
PRINT "Protocol ===========> "; User.Protocol
PRINT "KUpload ============> "; STR$(User.KUpload)
PRINT "KDnload ============> "; STR$(User.KDnload)
PRINT "KDnloadTdy =========> "; STR$(User.KDnloadTdy)
PRINT "Last Message Area ==> "; User.LMsgArea
PRINT "Last File Area =====> "; User.LFilArea
PRINT "Compress ===========> "; User.Compress
Bits1% = ASC(User.Bits1)
IF Bits1% AND 1 THEN HotKey$ = "Yes" ELSE HotKey$ = "No"
IF Bits1% AND 2 THEN ChatAvail$ = "Yes" ELSE ChatAvail$ = "No"
IF Bits1% AND 4 THEN Maxed$ = "Yes" ELSE Maxed$ = "No"
IF Bits1% AND 8 THEN Nerd$ = "Yes" ELSE Nerd$ = "No"
IF Bits1% AND 16 THEN InUserList$ = "Yes" ELSE InUserList$ = "No"
PRINT "Hotkeys ============> "; HotKey$
PRINT "ChatAvail ==========> "; ChatAvail$
PRINT "Maxed ==============> "; Maxed$
PRINT "Nerd ===============> "; Nerd$
PRINT "InUserList =========> "; InUserList$
PRINT ""
GOSUB WaitKey
X = X + 1 ' Get the next record
IF X > MaxRec THEN CLOSE : END
GOTO GetRec
CLOSE:END
WaitKey:
A$ = INKEY$: IF A$ = "" THEN GOTO WaitKey
IF A$ = CHR$(27) THEN CLOSE : END
RETURN
___---------------------------CUT HERE-------------------------------
This will get you a bit closer to the USER.BBS struct.......
As mentioned, should have something quite solid for you to FREQ by this
weekend.
Have a good one!
Stan
----- Cut Hereý -----
Here you go. Hope this helps,
-=> Olivier
<TagAdd 1.0P> ...Eat Crap! 10 Trillion flies can't be wrong.
--- FMail 0.92
* Origin: /³/ NewSoft BBS, Sherbrooke, QC. (819)565-5343 (1:257/20)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET