Question Maker

A BBS (Bulletin Board System) script for creating custom registration questions. Allows users to add questions to the registration questionnaire system. Supports different question types (Yes/No, text input, conditional skipping), color customization, and access level management. Each question creation reduces user access level by 1. Written in a Pascal-like BBS scripting language.

Source Code:

Variables
     Qwe, Mode   : String
     Q           : Logical
     Nqwe, Aq    : Number
End

Program

Clear
WriteLn ("\11Вам, как пользователю $BBSN, предоставляется уникальная возможность")
WriteLn ("\11включить в анкету полной регистрации свои вопросы.")
WriteLn ("\10*******************************************************************************")
WriteLn ("\11Если Вы не всосали суть, рекомендую ознакомится с хелпом...")
WriteLn ("\10*******************************************************************************")
WriteLn ("\12*******************************************************************************")
WriteLn ("\12Внимание!!! Каждый вопрос изменяет доступ = доступ - 1 !!!")
WriteLn ("\12*******************************************************************************")
WriteLn ("\13*******************************************************************************")
WriteLn ("\13При создании вопросов просьба - не создавать мусор и гадости !!!")
WriteLn ("\13*******************************************************************************")
WriteLn ()
WriteLn ("\10Вы согласны?\09")

YesNo (Q)
If Not Q
   Exit
End

FileAppend (1,"C:\BBS\USERS\QWEST.TXT")
FileWriteString (1)
FileWriteString (1, "( Next qwestion(s) was added by " + $NAME + " )")

New:

If ($SECR <= 1)
   Message ("\12У вас не достатачно уровня доступа для создания нового вопроса!\09")
   Exit
Else
   Aq=Aq+1
   $SECR=$SECR-1
End

Clear
FileWriteString (1,"")
FileWriteString (1,"[NewQwestion]")
WriteLn ("\10При ответе надо выбрать между "#34"да и нет"#34" [Да/Нет] ?\09")
NoYes (Q)

If Not Q
   Mode="NormalQwestions"
   WriteLn ("\11При ответе требуется ввод слов...")
   FileWriteString (1,"Type = 1")
Else
   Mode="BetwinYesNo"
   WriteLn ("\11При ответе надо выбрать между "#34"да или нет"#34"...")
   WriteLn ("\10Требуется ли пропуск последующих вопросов [Да/Нет] ?\09")
   NoYes (Q)
      If Q
      Mode="SkipQwestions"
      WriteLn ("\10Пропуск строк при положительном или отрицательном вопросе [Да/Нет] ?\09")
      NoYes (Q)
         If Q
              WriteLn ("\11При положительном вопросе ...")
              FileWriteString (1,"Type = 3")
         Else
              WriteLn ("\11При отрицательном вопросе ...")
              FileWriteString (1,"Type = 4")
         End
      Else
          WriteLn ("\11Пропуск строк не требуется ...")
          FileWriteString (1,"Type = 2")
      End
End

If Mode="SkipQwestions"
   Qwe="1"
   WriteLn ("\10Сколько вопросов надо пропустить ?\09"); ReadVar (Qwe,2)
   Val (Qwe,Nqwe)
   $SECR = $SECR + Nqwe
   FileWriteString (1,"Skiping= " + Qwe)
   WriteLn ("\12Пока вы не придумаете " + Nqwe + " вопросов, вы не сможете выйти !!!\09")
Else
   Qwe="50"
   If Mode="BetwinYesNo"
      FileWriteString (1, "Lenght = 0")
   Else
      WriteLn ("\10Какой длины будет ответ ?\09")
      ReadVar (Qwe,2)
      WriteLn (Qwe+"\11 символов...")
      FileWriteString (1, "Lenght = " + Qwe)
   End
End

Qwe="?"
WriteLn ("\10Сам вопрос :\09")
ReadVar (Qwe,70)
FileWriteString (1, "Qwestion = " + Qwe + " ")

Qwe=":"
WriteLn ("\10Строка описания в анкете :\09")
ReadVar (Qwe,50)
FileWriteString (1, "String = " + Qwe + " ")

If (Mode="BetwinYesNo") or (Mode="SkipQwestions")
     WriteLn ("\11Значение по умолчанию не требуется...")
     FileWriteString (1,"Default = None")
Else
     Qwe="."
     WriteLn ("\10Значение по умолчанию :\09")
     ReadVar (Qwe,70)
     FileWriteString (1, "Default = " + Qwe + " ")
End

Qwe="03"
WriteLn ("\10Цвет вопроса :\09")
WriteLn ("\15 00 - черный,       ")
WriteLn ("\01 01 - синий,        ")
WriteLn ("\02 02 - зеленый,      ")
WriteLn ("\03 03 - бирюзовый,    ")
WriteLn ("\04 04 - красный,      ")
WriteLn ("\05 05 - сиреневый,    ")
WriteLn ("\06 06 - коричневый,   ")
WriteLn ("\07 07 - серый,        ")
WriteLn ("\08 08 - темно-серый,  ")
WriteLn ("\09 09 - ярко-синий,   ")
WriteLn ("\10 10 - ярко-зеленый, ")
WriteLn ("\11 11 - голубой,      ")
WriteLn ("\12 12 - ярко-красный, ")
WriteLn ("\13 13 - розовый,      ")
WriteLn ("\14 14 - желтый,       ")
WriteLn ("\15 15 - белый.        ")
ReadVar (Qwe,2)
FileWriteString (1, "ColorOfQwestion = " + Qwe)

If (Mode="BetwinYesNo") or (Mode="SkipQwestions")
     WriteLn ("\11Цвет ответа не требуется...")
     FileWriteString (1, "ColorOfAnswer = " + "00")
Else
     Qwe="11"
     WriteLn ("\10Цвет ответа :")
     WriteLn ("\15 00 - черный,       ")
     WriteLn ("\01 01 - синий,        ")
     WriteLn ("\02 02 - зеленый,      ")
     WriteLn ("\03 03 - бирюзовый,    ")
     WriteLn ("\04 04 - красный,      ")
     WriteLn ("\05 05 - сиреневый,    ")
     WriteLn ("\06 06 - коричневый,   ")
     WriteLn ("\07 07 - серый,        ")
     WriteLn ("\08 08 - темно-серый,  ")
     WriteLn ("\09 09 - ярко-синий,   ")
     WriteLn ("\10 10 - ярко-зеленый, ")
     WriteLn ("\11 11 - голубой,      ")
     WriteLn ("\12 12 - ярко-красный, ")
     WriteLn ("\13 13 - розовый,      ")
     WriteLn ("\14 14 - желтый,       ")
     WriteLn ("\15 15 - белый.        ")
     ReadVar (Qwe,2)
     FileWriteString (1, "ColorOfAnswer = " + Qwe)
End

If Nqwe <> 0
   Message ("\12Вам осталось создать еще " + Nqwe + " вопросов!!!\09")
   Nqwe=Nqwe-1
   GoTo New
End

WriteLn ("\10Еще один ?\09")

YesNo (Q)

If Q
     GoTo New
Else
     FileWriteString (1)
     FileWriteString (1, "( " + Aq + " upper qwestion(s) was added by " + $NAME + " )")
     FileClose (1)
     Clear
     WriteLn ("\11Спасибо за пополнение нашей базы вопросов!")
     Message ("\11Вы можете пройти регистрацию заново, используя свои вопросы...")
     Exit
End
End