Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
layoutUtils (library for text layout)
#2
Very cool! Like info forms in the old BBS days.

Elegant approach!

Sharing this link because you might find it interesting / useful. There were a bunch of these kinds of parsers back in the day of BBSes. I like how yours has input length and stuff in it. I haven't tried your code yet./

Check out the old Renegade BBS Info Form docs here:
https://renegadebbs.info/docs/

Search for "Chapter 16 - Infoform" - there is no hypertext, this is an ASCII doc file.

Code: (Select All)
─────────────────────────────────────────────────────────────────────────────
Chapter 16 - Infoform Questionnaire System
─────────────────────────────────────────────────────────────────────────────

  ──────────────────────────────
  Chapter 16─A: How They're Made
  ──────────────────────────────

     Infoform questionnaires are text files with certain commands that only
     have meaning to the BBS.  The questionnaire is stored in the MISC
     directory, in a file with the extension .INF, .INA or .INV (No Emulation,
     ANSI Emulation, or Avatar Emulation, respectively.)  When users answer
     the question(s), their answers are also stored in the MISC directory, in
     a file with the extension ".ASW".  Answers from other users are appended
     to the end of the answer file.

  ───────────────────────────────────
  Chapter 16─B: New User Questionnaire
  ───────────────────────────────────

     A special Infoform questionnaire called NEWUSER is always given to a new
     user during the new user logon process.  An example is listed below:

─────────────────────────────────────────────────────────────────────────────

Alright!  Only a few more questions to go before you can logon.  Please
answer the questions, as they are essential for Validation and just as a
security measure.  Don't worry though....  It's not a test. (it's a quiz..)


;YAre you the SysOp of a BBS (Y/N)? : *
;INO,NOSYSOP

What is the Phone # of the BBS?
     ###─###─####
;A   ? *

;AWhat BBS software do you run? *

;AHow long has it been running for? *
;GNOSYSOP1

:NOSYSOP
Oh well!  Someone's gotta do it, eh?

:NOSYSOP1
Do you know of any of the current users on this BBS, or any other good
users that could recommend you? (2 lines)

;A 1) *
;A 2) *

Ok!  Thanks for answering the questions, and I'm sure you'll be validated
very soon!
─────────────────────────────────────────────────────────────────────────────

  ───────────────────────────────────
  Chapter 16─C: Questionnaire Commands
  ───────────────────────────────────

     Below are listed all the Infoform questionnaire commands currently
     supported by Renegade.  All commands must start on a separate line,
     beginning with a ";" character.  Labels also start on a separate line,
     but beginning with a ":" character, and are followed by a string of
     characters which define the label name.  Everything else is treated as
     straight text.  A "; <string>" line is treated as a comment.

          Command:  A<string>*
          Function: Displays <string> then inputs the string at the "*"
                    character.

          Command:  B<string>*
          Function: Similar to the "A" command, except input is uppercase only.

          Command:  C"chars"<string>*
          Function: Displays string, then inputs a single character at the "*"
                    character.  Only accepted answers are the characters
                    between the quote marks ("").

          Command:  Dx<string>
          Function: Outputs a doorfile (See Door in Menu Commands for x)
                    then executes <string>.  All rules for standard door
                    commands apply.

          Command:  F<Flag Toggles>
          Function: Will toggle the AR flags.  Refer to the Commandkey "OF" in
                    Chapter 11─D─12 for information on the <Flag Toggles>.

          Command:  G<label>
          Function: Goes to label <label>.  If <label> doesn't exist, the
                    questionnaire will terminate.

          Command:  H
          Function: Terminates questionnaire and hangs up on user.

          Command:  I<string>,<label>
          Function: Branches to <label> if <string> was the last input
                    value from a "A", "B", "C", or "Y" command.

          Command:  K
          Function: Terminate questionnaire without saving answers.

          Command:  L<string>
          Function: Outputs <string> to the questionnaire answer file only.

          Command:  N<String>*
          Function: Displays <string>, then accepts either a "Y", or "N"
                    at the "*" character.  Defaults to No.

          Command:  Q
          Function: Terminates questionnaire and saves answers in answer file.

          Command:  R<Flag Toggles>
          Function: Will toggle the AC flags.  Refer to the Commandkey "OG" in
                    Chapter 11─D─12 for information on the <Flag Toggles>.

          Command:  T<filename>
          Function: Displays the file <filename>.

          Command:  V<level>
          Function: Will validate a user up to level <level>.

          Command:  Y<string>*
          Function: Same as N<String>, but defaults to Yes instead of No.

          Command: S<ACS>,LABEL
          Function: If the user matches the ACS specified between quotes,
                    execution will branch to LABEL, like the G command.

Another topic that might be interesting for you and your library is the concept of MCI codes:
https://renegadebbs.info/docs/mci.html

TL;DR: it's a variable that is found/replaced (like your references) but with specific data for the BBS - in this case not useful for your library unless the programmer defined them in advance, or you had one for date/time, current directory or I don't know, other things that QB64PE can introspect on Smile
grymmjack (gj!)
GitHubYouTube | Soundcloud | 16colo.rs
Reply


Messages In This Thread
layoutUtils (library for text layout) - by Herve - 07-14-2025, 09:10 PM
RE: layoutUtils (library for text layout) - by grymmjack - 07-16-2025, 06:32 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Format Library eoredson 8 445 02-28-2026, 03:31 AM
Last Post: eoredson
  SPV Video library. ahenry3068 10 631 01-21-2026, 06:46 PM
Last Post: ahenry3068
  Large 2D Graphics Library TarotRedhand 6 2,603 12-05-2023, 05:17 AM
Last Post: grymmjack
  Huge Matrices Library [Updated] TarotRedhand 8 2,628 05-17-2022, 11:42 AM
Last Post: TarotRedhand

Forum Jump:


Users browsing this thread: