home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / THTMT312.ZIP / CHECK.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-03-12  |  5KB  |  327 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER002
  20.     Integer  INTEGER003
  21.     Integer  INTEGER004
  22.     Integer  INTEGER005
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   STRING004
  27.     String   STRING005
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.     String   STRING013
  36.     String   STRING014
  37.     String   STRING015
  38.     String   STRING016
  39.     String   STRING017
  40.     String   STRING018
  41.     String   STRING019
  42.     String   STRING020
  43.     String   STRING021
  44.     String   STRING022
  45.     String   STRING023
  46.  
  47. ;------------------------------------------------------------------------------
  48.  
  49.     FDefIn 1
  50.     FDefOut 2
  51.     FOpen 1, PPEPath() + PPEName() + ".cnf", 0, 0
  52.     FGet 1, STRING010
  53.     FGet 1, STRING022
  54.     FGet 1, STRING023
  55.     FGet 1, STRING021
  56.     FGet 1, STRING011
  57.     FGet 1, STRING012
  58.     FGet 1, STRING009
  59.     FClose 1
  60.     If (STRING010 == NoChar()) Goto LABEL014
  61.     GetUser
  62.     STRING001 = 3
  63.     INTEGER002 = 0
  64.     INTEGER003 = 0
  65.     INTEGER004 = 0
  66.     INTEGER005 = 0
  67.     FOpen 1, PPEPath() + "tht-info.cfg", 0, 0
  68.     FGet 1, STRING002
  69.     FClose 1
  70.     Tokenize U_Name()
  71.     If (TokCount() == 3) Then
  72.         GetToken STRING018
  73.         GetToken STRING019
  74.         GetToken STRING020
  75.         STRING018 = Strip(STRING018, " ")
  76.         STRING020 = Strip(STRING020, " ")
  77.         STRING018 = Strip(STRING018, ".")
  78.         STRING020 = Strip(STRING020, ".")
  79.         STRING018 = Left(STRING018, 3)
  80.         STRING019 = Right(STRING020, 4)
  81.         If (Exist(PPEPath() + "apps\" + STRING018 + "_" + STRING019 + ".vot")) Then
  82.         Else
  83.             GetToken STRING018
  84.             GetToken STRING019
  85.             STRING018 = Strip(STRING018, " ")
  86.             STRING019 = Strip(STRING019, " ")
  87.             STRING018 = Strip(STRING018, ".")
  88.             STRING019 = Strip(STRING019, ".")
  89.             STRING018 = Left(STRING018, 3)
  90.             STRING019 = Right(STRING019, 4)
  91.             If (Exist(PPEPath() + "apps\" + STRING018 + "_" + STRING019 + ".vot")) Then
  92.             Endif
  93.             FOpen 2, PPEPath() + "apps\" + STRING018 + "_" + STRING019 + ".vot", 0, 0
  94.             :LABEL001
  95.             If (Ferr(2)) Goto LABEL003
  96.             FGet 2, STRING013
  97.             Tokenize STRING013
  98.             If (TokCount() == 4) Then
  99.                 GetToken STRING014
  100.                 GetToken STRING015
  101.                 GetToken STRING016
  102.                 GetToken STRING017
  103.                 If (STRING017 == "Y") Inc INTEGER004
  104.                 If (STRING017 == "N") Inc INTEGER005
  105.                 If (INTEGER004 >= STRING022) Goto LABEL003
  106.                 If (INTEGER005 >= STRING023) Goto LABEL003
  107.                 Goto LABEL002
  108.             Endif
  109.             If (TokCount() == 3) Then
  110.                 GetToken STRING014
  111.                 GetToken STRING015
  112.                 GetToken STRING016
  113.                 AnsiPos 30, STRING001
  114.                 If (STRING016 == "Y") Inc INTEGER004
  115.                 If (STRING016 == "N") Inc INTEGER005
  116.                 If (INTEGER004 >= STRING022) Goto LABEL003
  117.                 If (INTEGER005 >= STRING023) Goto LABEL003
  118.                 Goto LABEL002
  119.             Endif
  120.             If (TokCount() == 2) Then
  121.                 GetToken STRING014
  122.                 GetToken STRING015
  123.                 AnsiPos 30, STRING001
  124.                 If (STRING015 == "Y") Inc INTEGER004
  125.                 If (STRING015 == "N") Inc INTEGER005
  126.                 If (INTEGER004 >= STRING022) Goto LABEL003
  127.                 If (INTEGER005 >= STRING023) Goto LABEL003
  128.                 Inc STRING001
  129.             Endif
  130.             :LABEL002
  131.             Goto LABEL001
  132.             :LABEL003
  133.             STRING007 = INTEGER004
  134.             STRING008 = INTEGER005
  135.             FClose 2
  136.             Cls
  137.             AnsiPos 7, 1
  138.             PrintLn "@X7ENew User@X7F'@X7Es Voting Results @X7Ffrom @X74Master Beta @X7F@ @X74<<@X7ETHT@X74>>@X07"
  139.             AnsiPos 30, 2
  140.             PrintLn "@X1Fv 2@X1F.@X1C08@X07"
  141.             AnsiPos 6, 3
  142.             PrintLn "@X34╔════════════════════════════════════════════════════╗@X07"
  143.             AnsiPos 6, 4
  144.             PrintLn "@X34║  @X3E" + U_Name() + "@POS:25@" + "  @X30" + U_City + "@POS:59@@X34║@X07"
  145.             AnsiPos 6, 5
  146.             PrintLn "@X34║              @X39Your Current Stats @POS:59@@X34║@X07"
  147.             AnsiPos 6, 6
  148.             PrintLn "@X34║@POS:59@@X34║@X07"
  149.             AnsiPos 6, 7
  150.             PrintLn "@X04@X34║@X38Votes for You> @X30" + STRING007 + "@POS:59@@X34║@X07"
  151.             AnsiPos 6, 8
  152.             PrintLn "@X34║@POS:59@@X34║@X07"
  153.             AnsiPos 6, 9
  154.             PrintLn "@X34║@X38Votes against You> @X30" + STRING008 + "@POS:59@@X34║@X07"
  155.             AnsiPos 6, 10
  156.             PrintLn "@X34║@POS:59@║@X07"
  157.             AnsiPos 6, 11
  158.             PrintLn "@X34║@X3EYou Need @X31" + STRING022 + "@X3E Votes to gain Access to the Board" + "@POS:59@@X34║@X07"
  159.             AnsiPos 6, 12
  160.             PrintLn "@X34║@POS:59@║@X07"
  161.             AnsiPos 6, 13
  162.             PrintLn "@X34╚════════════════════════════════════════════════════╝@X07"
  163.             FreshLine
  164.             Wait
  165.             If (INTEGER004 >= STRING022) Goto LABEL004
  166.             If (INTEGER005 >= STRING023) Goto LABEL009
  167.             If (STRING009 == YesChar()) Hangup
  168.             Goto LABEL014
  169.             :LABEL004
  170.             U_Sec = STRING021
  171.             PutUser
  172.             AnsiPos 6, 14
  173.             PrintLn "@X0EYou have been accepted as a @X0CUSER @X0Eon this Board@X07"
  174.             FOpen 1, PPEPath() + "apps\waiting.app", 2, 0
  175.             FAppend 2, PPEPath() + "apps\waiting.tmp", 1, 0
  176.             :LABEL005
  177.             If (Ferr(1)) Goto LABEL007
  178.             FGet 1, STRING004
  179.             Tokenize STRING004
  180.             GetToken STRING005
  181.             GetToken STRING006
  182.             If (STRING004 == "") Goto LABEL008
  183.             If ((STRING005 + " " + STRING006 == U_Name()) || (STRING005 == U_Name())) Then
  184.                 PrintLn 
  185.                 Goto LABEL006
  186.             Endif
  187.             FPutLn 2, STRING004
  188.             :LABEL006
  189.             Goto LABEL005
  190.             :LABEL007
  191.             FClose 2
  192.             :LABEL008
  193.             FClose 1
  194.             FClose 2
  195.             Copy PPEPath() + "APPS\waiting.tmp", PPEPath() + "APPS\waiting.app"
  196.             Delete PPEPath() + "APPS\waiting.tmp"
  197.             Delete PPEPath() + "apps\" + STRING018 + "_" + STRING019 + ".vot"
  198.             Delete PPEPath() + "apps\" + STRING018 + "_" + STRING019 + ".GRP"
  199.             Delete PPEPath() + "apps\" + STRING018 + "_" + STRING019 + ".cmt"
  200.             For STRING003 = STRING002 To 1 Step -1
  201.                 Delete PPEPath() + "apps\" + STRING018 + "_" + STRING019 + "." + STRING003
  202.             Next
  203.             Wait
  204.             Goto LABEL014
  205.             :LABEL009
  206.             PrintLn "@X0CSorry but your Application has been Refused@X8C!!!!@X07"
  207.             U_Sec = STRING012
  208.             If (STRING011 == YesChar()) DelUser
  209.             PutUser
  210.             FOpen 1, PPEPath() + "apps\waiting.app", 2, 0
  211.             FAppend 2, PPEPath() + "apps\waiting.tmp", 1, 0
  212.             :LABEL010
  213.             If (Ferr(1)) Goto LABEL012
  214.             FGet 1, STRING004
  215.             Tokenize STRING004
  216.             GetToken STRING005
  217.             GetToken STRING006
  218.             If (STRING004 == "") Goto LABEL013
  219.             If ((STRING005 + " " + STRING006 == U_Name()) || (STRING005 == U_Name())) Then
  220.                 PrintLn 
  221.                 Goto LABEL011
  222.             Endif
  223.             FPutLn 2, STRING004
  224.             :LABEL011
  225.             Goto LABEL010
  226.             :LABEL012
  227.             :LABEL013
  228.             FClose 2
  229.             FClose 1
  230.             Copy PPEPath() + "APPS\waiting.tmp", PPEPath() + "APPS\waiting.app"
  231.             Delete PPEPath() + "APPS\waiting.tmp"
  232.             Hangup
  233.             Goto LABEL014
  234.         Endif
  235.     Endif
  236.     :LABEL014
  237.     FClose 1
  238.     FClose 2
  239.     End
  240.  
  241. ;------------------------------------------------------------------------------
  242. ;
  243. ; Usage report (before postprocessing)
  244. ;
  245. ; ■ Statements used :
  246. ;
  247. ;    1       End
  248. ;    1       Cls
  249. ;    2       Wait
  250. ;    37      Goto 
  251. ;    23      Let 
  252. ;    17      PrintLn 
  253. ;    31      If 
  254. ;    5       FOpen 
  255. ;    2       FAppend 
  256. ;    10      FClose 
  257. ;    11      FGet 
  258. ;    2       FPutLn 
  259. ;    2       Hangup
  260. ;    1       GetUser
  261. ;    2       PutUser
  262. ;    6       Delete 
  263. ;    1       DelUser
  264. ;    7       Inc 
  265. ;    4       Tokenize 
  266. ;    18      GetToken 
  267. ;    16      AnsiPos 
  268. ;    1       FreshLine
  269. ;    1       FDefIn 
  270. ;    1       FDefOut 
  271. ;    2       Copy 
  272. ;
  273. ;
  274. ; ■ Functions used :
  275. ;
  276. ;    3       -
  277. ;    66      +
  278. ;    19      ==
  279. ;    1       <
  280. ;    1       <=
  281. ;    10      >=
  282. ;    12      !
  283. ;    2       &&
  284. ;    3       ||
  285. ;    2       Left()
  286. ;    2       Right()
  287. ;    3       Ferr()
  288. ;    6       U_Name()
  289. ;    1       NoChar()
  290. ;    2       YesChar()
  291. ;    8       Strip()
  292. ;    19      PPEPath()
  293. ;    2       Exist()
  294. ;    1       PPEName()
  295. ;    4       TokCount()
  296. ;
  297. ;------------------------------------------------------------------------------
  298. ;
  299. ; Analysis flags : WDB
  300. ;
  301. ; W - Write user ■ 5
  302. ;     Program writes a user record. Although this may be normal for a
  303. ;     User Editor, it may also be a way to modify an account level.
  304. ;     ■ Search for : PUTUSER
  305. ;
  306. ; D - Delete user ■ 5
  307. ;     Program is deleting account(s)... Check!
  308. ;     ■ Search for : DELUSER
  309. ;
  310. ; B - Brute hangup ■ 1
  311. ;     Program hangup without notification. This may be a good way to
  312. ;     disconnect a user, but if used randomly, may be very nasty
  313. ;     ■ Search for : HANGUP, DTROFF
  314. ;
  315. ;------------------------------------------------------------------------------
  316. ;
  317. ; Postprocessing report
  318. ;
  319. ;    1       For/Next
  320. ;    0       While/EndWhile
  321. ;    8       If/Then or If/Then/Else
  322. ;    0       Select Case
  323. ;
  324. ;------------------------------------------------------------------------------
  325. ;                 AEGiS Corp - Break the routines, code against the machines!
  326. ;------------------------------------------------------------------------------
  327.