BBS: Inland Empire Archive Date: 01-25-93 (23:14) Number: 342 From: STAN FOY Refer#: NONE To: ROBERT LEE Recvd: NO Subj: Re: Maximus BBS and Quic Conf: (2) Quik_Bas
-=> Quoting Robert Lee to All <=-
RL> TYPE/END TYPE structure for binary/random files. Does anybody out
RL> there have Maximus's structure configured in a QuickBasic TYPE/END
RL> TYPE method? If so, can I FReq it from you? Thanks a bunch!
Have been wanting to do this for a while, so your message prompted me to
sit down and get started. The following is a quickie that may get you
started.
___-------------------- 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 ' 161
OnLineTime AS INTEGER ' 163
DelFlag AS INTEGER ' 165
Rsvd4 AS STRING * 8 ' 173
ScrWidth AS STRING * 1 ' 174
ScrLength AS STRING * 1 ' 175
Credit AS INTEGER ' 177
Debit AS INTEGER ' 179
XPriv AS STRING * 2 ' 181
XPDate AS STRING * 4 ' 185
XMins AS STRING * 1 ' 186
XFlags AS STRING * 1 ' 187
XReserved AS STRING * 1 ' 188
LuDate AS STRING * 4 ' 192
UserKeys AS STRING * 4 ' 196
Language AS STRING * 1 ' 197
Protocol AS STRING * 4 ' 198
KUpload AS LONG ' 202
KDnload AS LONG ' 206
KDnloadTdy AS LONG ' 210
LMsgArea AS STRING * 10 ' 220
LFilArea AS STRING * 10 ' 230
Compress AS STRING * 1 ' 231
Rsvd5 AS STRING * 1 ' 233
Extra AS STRING * 4 ' 237
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 -----------------------------
Hope that gets you started, this is by no means complete. Will let you
know when there is a completed version available for 'FREQ' here at 128/128.
(Should be by this weekend).
Stan
... A feature is a bug with seniority.
___ Blue Wave/QWK v2.12
--- Maximus 2.01wb
* Origin: CPU Etc. BBS--Colorado Springs, CO (719)597-3723 (1:128/128)

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