home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / BBS_UTIL / PRLST50.ZIP / PL-PPE.ZIP / PWRLIST.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-01-27  |  9KB  |  354 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.     Date     DATE001
  20.     Integer  TINTEGER001(250)
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     String   STRING001
  27.     String   STRING002
  28.     String   STRING003
  29.     String   STRING004
  30.     String   STRING005
  31.     String   TSTRING006(250)
  32.     String   STRING007
  33.     String   STRING008
  34.     String   STRING009
  35.     String   STRING010
  36.     String   STRING011
  37.     String   STRING012
  38.     String   STRING013
  39.     String   STRING014
  40.     String   STRING015
  41.     String   STRING016
  42.  
  43. ;------------------------------------------------------------------------------
  44.  
  45.     GetUser
  46.     STRING012 = "!$%&'()*+-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿αß"
  47.     DATE001 = 0
  48.     STRING010 = "A"
  49.     Cls
  50.     Gosub LABEL015
  51.     :LABEL001
  52.     Cls
  53.     STRING009 = ""
  54.     PrintLn "@X0F                            POWER LIST version 5.0"
  55.     PrintLn "@X09                                      by"
  56.     PrintLn "@X0E                                 Mike Weaver"
  57.     PrintLn 
  58.     PrintLn "@X70  (L)ist available directories   @X08▄          @X78  @X70(F)lag directories to download @X08▄"
  59.     PrintLn " ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  60.     PrintLn 
  61.     PrintLn "@X70  (V)iew conference directory    @X08▄          @X78  @X70(J)oin a different conference  @X08▄"
  62.     PrintLn " ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  63.     PrintLn 
  64.     PrintLn "@X70  (T)ext search all directories  @X08▄          @X70  (Q)uit Power List  (ENTER)     @X08▄"
  65.     PrintLn " ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀           ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  66.     PrintLn 
  67.     PrintLn "@X09 Evaluation Copy  @X0CPlease encourage your SysOp to register.@X09  Evaluation Copy"
  68.     PrintLn 
  69.     InputStr "(@X0C@TIMELEFT@ @X0Emin. left) Power List Command", STRING009, 14, 1, "LVTFJQ", 270
  70.     If (STRING009 == "L") Goto LABEL002
  71.     If (STRING009 == "V") Goto LABEL003
  72.     If (STRING009 == "T") Goto LABEL004
  73.     If (STRING009 == "F") Goto LABEL005
  74.     If (STRING009 == "J") Goto LABEL006
  75.     If (STRING009 == "Q") Goto LABEL019
  76.     If (STRING009 == "") Goto LABEL019
  77.     STRING009 = ""
  78.     Goto LABEL001
  79.     :LABEL002
  80.     Cls
  81.     DispFile STRING005, 1
  82.     Wait
  83.     Goto LABEL001
  84.     :LABEL003
  85.     Cls
  86.     Dir "R"
  87.     Goto LABEL001
  88.     :LABEL004
  89.     STRING009 = ""
  90.     Gosub LABEL007
  91.     InputStr "@X0AChange (@X0FM@X0A)atching (@X0FE@X0A)xclude (@X0FN@X0A)ew date (@X0FD@X0A)irs (@X0FQ@X0A)uit (@X0FS@X0A)earch", STRING009, 10, 1, "MENDQS", 270
  92.     If (STRING009 == "M") Gosub LABEL010
  93.     If (STRING009 == "E") Gosub LABEL011
  94.     If (STRING009 == "N") Gosub LABEL012
  95.     If (STRING009 == "D") Gosub LABEL013
  96.     If (STRING009 == "S") Goto LABEL014
  97.     If (STRING009 == "Q") Goto LABEL019
  98.     If (STRING009 == "") Goto LABEL001
  99.     Goto LABEL004
  100.     Goto LABEL019
  101.     :LABEL005
  102.     Cls
  103.     DispFile STRING005, 1
  104.     InputStr "Enter directories 1-" + String(INTEGER003) + " to FLAG for download", STRING011, 14, 30, " 0123456789,", 170
  105.     If (STRING011 <> "") Gosub LABEL018
  106.     Goto LABEL001
  107.     :LABEL006
  108.     Cls
  109.     Join ""
  110.     If (INTEGER006 <> CurConf()) Then
  111.         Delete STRING004
  112.         Gosub LABEL015
  113.     Endif
  114.     Goto LABEL001
  115.     :LABEL007
  116.     Cls
  117.     Gosub LABEL008
  118.     PrintLn 
  119.     PrintLn "@X07@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
  120.     If (STRING014 == "") PrintLn "@X70│  @X71Search Text: @X7F", "@X74(@X7FNo text selected yet@X74)" + "@POS:78@@X7F│@X07"
  121.     If (STRING014 <> "") PrintLn "@X70│  @X71Search Text: @X7E", STRING014 + "@POS:78@@X7F│@X07"
  122.     PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────┘@X07"
  123.     PrintLn "@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
  124.     PrintLn "@X70│ @X71Exclude Text: @X7E", STRING015 + "@POS:78@@X7F│@X07"
  125.     PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────┘@X07"
  126.     PrintLn 
  127.     PrintLn "@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
  128.     If (DATE001 == 0) PrintLn "@X70│ @X74Any file date greater than or equal to: @X71(@X7FN/A@X71)                              @X7F│@X07"
  129.     If (!(DATE001 == 0)) PrintLn "@X70│ @X74Any file date greater than or equal to: @X7E", String(DATE001) + "@POS:78@@X7F│@X07"
  130.     PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────┘@X07"
  131.     PrintLn "@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
  132.     PrintLn "@X70│ @X74In the following directories (A = ALL): @X7E", STRING010 + "@POS:78@@X7F│@X07"
  133.     PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────┘@X07"
  134.     Newlines 2
  135.     Return
  136.     :LABEL008
  137.     If ((!((Left(STRING014, 1) == "(") && (Right(STRING014, 1) == ")")) && (InStr(STRING014, "&") <> 0)) || (InStr(STRING014, "|") <> 0)) STRING014 = "(" + STRING014 + ")"
  138.     If (!((Left(STRING015, 1) == "(") && (Right(STRING015, 1) == ")")) && ((InStr(STRING015, "&") <> 0) || (InStr(STRING015, "|") <> 0))) STRING015 = "(" + STRING015 + ")"
  139.     If (DATE001 == 0) STRING013 = ""
  140.     If (DATE001 <> 0) Gosub LABEL009
  141.     If (DATE001 <> 0) STRING013 = "N " + STRING013 + " "
  142.     If (STRING015 <> "") STRING016 = "Z " + STRING014 + " & ! " + STRING015 + " " + STRING013 + STRING010 + ""
  143.     If (STRING015 == "") STRING016 = "Z " + STRING014 + " " + STRING013 + STRING010 + ""
  144.     If (STRING014 == "") STRING016 = "Z ! " + STRING015 + " " + STRING013 + STRING010 + ""
  145.     If ((STRING015 == "") && (STRING014 == "")) STRING016 = "No search created yet"
  146.     Return
  147.     :LABEL009
  148.     STRING013 = Left(DATE001, 2) + Mid(DATE001, 4, 2) + Right(DATE001, 2)
  149.     Return
  150.     :LABEL010
  151.     Cls
  152.     PrintLn 
  153.     PrintLn "You can enter text or phrase that you wish to search for in the file"
  154.     PrintLn "description, filename, date, or size.  For example, if you wanted to list"
  155.     PrintLn "every file that contained the word DISK, then you would type DISK at the"
  156.     PrintLn "prompt below."
  157.     PrintLn 
  158.     PrintLn "Complex Text Searches..."
  159.     PrintLn 
  160.     PrintLn "PCBoard supports Boolean text searches.  This means that you can use the"
  161.     PrintLn "Boolean operators AND (&), OR (|), or NOT (!) to help you create a more"
  162.     PrintLn "specific search.  For example, if you wanted to search for any description"
  163.     PrintLn "that contained the words TEXT and the word EDITOR anywhere in the description"
  164.     PrintLn "then you would enter TEXT & EDITOR at the prompt below.  On the other hand,"
  165.     PrintLn "you may suspect that someone may have used the word ASCII instead of the word"
  166.     PrintLn "TEXT when describing a file.  In that case you could enter the following"
  167.     PrintLn "instead."
  168.     PrintLn 
  169.     PrintLn "   (ASCII | TEXT) & EDITOR"
  170.     PrintLn 
  171.     InputStr "Enter Text to Search For", STRING014, 10, 54, STRING012 + "|", 30
  172.     Return
  173.     :LABEL011
  174.     PrintLn 
  175.     PrintLn "You can tell PCBoard to NOT display any files that contain the text you"
  176.     PrintLn "enter at the next prompt.  You may enter a single word or phrase."
  177.     PrintLn 
  178.     InputStr "Enter text to exclude", STRING015, 10, 54, STRING012 + "|", 30
  179.     Return
  180.     :LABEL012
  181.     DATE001 = U_LDir()
  182.     PrintLn 
  183.     PrintLn "@X03If you @X00@X0Bdo not want to search@XFF for files @X0Bbased on the date@XFF of the file then"
  184.     PrintLn "enter a date of @X0F0@XFF.  This will exclude the date from the search."
  185.     PrintLn 
  186.     InputDate "Enter new date to begin searching for files", DATE001, 10
  187.     Return
  188.     :LABEL013
  189.     Cls
  190.     PrintLn 
  191.     PrintLn "You may specify any directory between 1 and " + String(INTEGER003) + " to search.  You can specify a"
  192.     PrintLn "single directory or you may specify a range of directories using the (##-##)"
  193.     PrintLn "format.  For example, if you wanted to search for files in the directories 2"
  194.     PrintLn "thru 10, you would then enter [2-10].  If you wish to combine ranges or even"
  195.     PrintLn "directories you can do this by specifing a comma."
  196.     PrintLn 
  197.     PrintLn "    1-9, 15, 30-40"
  198.     PrintLn 
  199.     PrintLn "This example would search, 1-9, directory 15, plus directories 30 through 40."
  200.     PrintLn 
  201.     PrintLn "NOTE:  There are two 'special' directory numbers you may specify. If you"
  202.     PrintLn "       want to search all directories, then enter A for a directory.  If"
  203.     PrintLn "       you want to specify the upload directory then use a U."
  204.     PrintLn 
  205.     InputStr "Enter directories to include in your search", STRING010, 10, 25, " 0123456789AUP-,", 170
  206.     Return
  207.     :LABEL014
  208.     Gosub LABEL008
  209.     Log "SEARCH: " + STRING016, 0
  210.     If (STRING016 == "No search created yet") Goto LABEL001
  211.     Dir STRING016
  212.     Goto LABEL001
  213.     :LABEL015
  214.     Cls
  215.     INTEGER006 = CurConf()
  216.     Gosub LABEL016
  217.     Gosub LABEL017
  218.     FOpen 1, STRING004, 0, 0
  219.     FGet 1, STRING005
  220.     FGet 1, INTEGER003
  221.     For INTEGER004 = 1 To INTEGER003
  222.         FGet 1, TSTRING006(INTEGER004)
  223.     Next
  224.     FClose 1
  225.     Return
  226.     :LABEL016
  227.     FOpen 1, PCBDat(), 0, 0
  228.     For INTEGER004 = 1 To 31
  229.         FGet 1, STRING007
  230.         If (INTEGER004 == 31) STRING008 = STRING007 + ".@@@"
  231.     Next
  232.     FClose 1
  233.     Return
  234.     :LABEL017
  235.     STRING002 = PPEPath() + "CFG.COM "
  236.     STRING003 = String(CurConf()) + " " + STRING008 + " "
  237.     STRING004 = PPEPath() + "CONFIG." + String(CurConf())
  238.     Shell -1, INTEGER005, STRING002, STRING003 + STRING004
  239.     Return
  240.     :LABEL018
  241.     Tokenize STRING011
  242.     GetToken STRING011
  243.     While ((Len(STRING011) > 0) && (INTEGER002 < INTEGER003)) Do
  244.         Inc INTEGER002
  245.         TINTEGER001(INTEGER002) = STRING011
  246.         STRING001 = STRING001 + " " + Strip(TSTRING006(TINTEGER001(INTEGER002)), " ")
  247.         GetToken STRING011
  248.     EndWhile
  249.     Return
  250.     :LABEL019
  251.     Delete STRING004
  252.     Newlines 1
  253.     If (INTEGER002 > 0) Then
  254.         Cls
  255.         PrintLn "@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
  256.         PrintLn "@X70│ @X74To download the directory listing's that you have flagged you would issue  @X7F│@X07"
  257.         PrintLn "@X70│ @X74a (D)ownload command at which point the system will ask you if you want to @X7F│@X07"
  258.         PrintLn "@X70│ @X74download the files that you flagged.  Answering NO will cause the system   @X7F│@X07"
  259.         PrintLn "@X70│ @X74to forget all the files that were flagged.                                 @X7F│@X07"
  260.         PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────@X7F┘@X07"
  261.         PrintLn 
  262.         KbdStuff "FLAG " + STRING001
  263.     Endif
  264.     End
  265.  
  266. ;------------------------------------------------------------------------------
  267. ;
  268. ; Usage report (before postprocessing)
  269. ;
  270. ; ■ Statements used :
  271. ;
  272. ;    1       End
  273. ;    11      Cls
  274. ;    1       Wait
  275. ;    27      Goto 
  276. ;    27      Let 
  277. ;    80      PrintLn 
  278. ;    35      If 
  279. ;    2       DispFile 
  280. ;    2       FOpen 
  281. ;    2       FClose 
  282. ;    4       FGet 
  283. ;    1       GetUser
  284. ;    2       Delete 
  285. ;    1       Log 
  286. ;    6       InputStr 
  287. ;    1       InputDate 
  288. ;    13      Gosub 
  289. ;    11      Return
  290. ;    1       Inc 
  291. ;    2       Newlines 
  292. ;    1       Tokenize 
  293. ;    2       GetToken 
  294. ;    1       Shell 
  295. ;    1       KbdStuff 
  296. ;    1       Join 
  297. ;    2       Dir 
  298. ;
  299. ;
  300. ; ■ Functions used :
  301. ;
  302. ;    1       -
  303. ;    50      +
  304. ;    28      ==
  305. ;    10      <>
  306. ;    3       <
  307. ;    2       <=
  308. ;    2       >
  309. ;    4       >=
  310. ;    8       !
  311. ;    10      &&
  312. ;    4       ||
  313. ;    1       Len(
  314. ;    1       Mid()
  315. ;    3       Left()
  316. ;    3       Right()
  317. ;    4       InStr()
  318. ;    1       U_LDir()
  319. ;    1       Strip()
  320. ;    5       String()
  321. ;    4       CurConf()
  322. ;    1       PCBDat()
  323. ;    2       PPEPath()
  324. ;
  325. ;------------------------------------------------------------------------------
  326. ;
  327. ; Analysis flags : Sd
  328. ;
  329. ; S - Shell to DOS ■ 5
  330. ;     This may be normal if the PPE need to execute an external command,
  331. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  332. ;     or usefull (sorting, maintenance,...). Check!
  333. ;     ■ Search for : SHELL
  334. ;
  335. ; d - Access PCBOARD.DAT ■ 2
  336. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  337. ;     for many PPE so they can find various informations on the system
  338. ;     (system paths, max number of lines in messages, ...) but it may also
  339. ;     be a way to gather vital informations.
  340. ;     ■ Search for : PCBDAT()
  341. ;
  342. ;------------------------------------------------------------------------------
  343. ;
  344. ; Postprocessing report
  345. ;
  346. ;    2       For/Next
  347. ;    1       While/EndWhile
  348. ;    2       If/Then or If/Then/Else
  349. ;    0       Select Case
  350. ;
  351. ;------------------------------------------------------------------------------
  352. ;                 AEGiS Corp - Break the routines, code against the machines!
  353. ;------------------------------------------------------------------------------
  354.