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
Wrap
PCBoard Programming Language Executable
|
1994-01-27
|
9KB
|
354 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Date DATE001
Integer TINTEGER001(250)
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String TSTRING006(250)
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
;------------------------------------------------------------------------------
GetUser
STRING012 = "!$%&'()*+-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿αß"
DATE001 = 0
STRING010 = "A"
Cls
Gosub LABEL015
:LABEL001
Cls
STRING009 = ""
PrintLn "@X0F POWER LIST version 5.0"
PrintLn "@X09 by"
PrintLn "@X0E Mike Weaver"
PrintLn
PrintLn "@X70 (L)ist available directories @X08▄ @X78 @X70(F)lag directories to download @X08▄"
PrintLn " ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
PrintLn
PrintLn "@X70 (V)iew conference directory @X08▄ @X78 @X70(J)oin a different conference @X08▄"
PrintLn " ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
PrintLn
PrintLn "@X70 (T)ext search all directories @X08▄ @X70 (Q)uit Power List (ENTER) @X08▄"
PrintLn " ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
PrintLn
PrintLn "@X09 Evaluation Copy @X0CPlease encourage your SysOp to register.@X09 Evaluation Copy"
PrintLn
InputStr "(@X0C@TIMELEFT@ @X0Emin. left) Power List Command", STRING009, 14, 1, "LVTFJQ", 270
If (STRING009 == "L") Goto LABEL002
If (STRING009 == "V") Goto LABEL003
If (STRING009 == "T") Goto LABEL004
If (STRING009 == "F") Goto LABEL005
If (STRING009 == "J") Goto LABEL006
If (STRING009 == "Q") Goto LABEL019
If (STRING009 == "") Goto LABEL019
STRING009 = ""
Goto LABEL001
:LABEL002
Cls
DispFile STRING005, 1
Wait
Goto LABEL001
:LABEL003
Cls
Dir "R"
Goto LABEL001
:LABEL004
STRING009 = ""
Gosub LABEL007
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
If (STRING009 == "M") Gosub LABEL010
If (STRING009 == "E") Gosub LABEL011
If (STRING009 == "N") Gosub LABEL012
If (STRING009 == "D") Gosub LABEL013
If (STRING009 == "S") Goto LABEL014
If (STRING009 == "Q") Goto LABEL019
If (STRING009 == "") Goto LABEL001
Goto LABEL004
Goto LABEL019
:LABEL005
Cls
DispFile STRING005, 1
InputStr "Enter directories 1-" + String(INTEGER003) + " to FLAG for download", STRING011, 14, 30, " 0123456789,", 170
If (STRING011 <> "") Gosub LABEL018
Goto LABEL001
:LABEL006
Cls
Join ""
If (INTEGER006 <> CurConf()) Then
Delete STRING004
Gosub LABEL015
Endif
Goto LABEL001
:LABEL007
Cls
Gosub LABEL008
PrintLn
PrintLn "@X07@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
If (STRING014 == "") PrintLn "@X70│ @X71Search Text: @X7F", "@X74(@X7FNo text selected yet@X74)" + "@POS:78@@X7F│@X07"
If (STRING014 <> "") PrintLn "@X70│ @X71Search Text: @X7E", STRING014 + "@POS:78@@X7F│@X07"
PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────┘@X07"
PrintLn "@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
PrintLn "@X70│ @X71Exclude Text: @X7E", STRING015 + "@POS:78@@X7F│@X07"
PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────┘@X07"
PrintLn
PrintLn "@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
If (DATE001 == 0) PrintLn "@X70│ @X74Any file date greater than or equal to: @X71(@X7FN/A@X71) @X7F│@X07"
If (!(DATE001 == 0)) PrintLn "@X70│ @X74Any file date greater than or equal to: @X7E", String(DATE001) + "@POS:78@@X7F│@X07"
PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────┘@X07"
PrintLn "@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
PrintLn "@X70│ @X74In the following directories (A = ALL): @X7E", STRING010 + "@POS:78@@X7F│@X07"
PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────┘@X07"
Newlines 2
Return
:LABEL008
If ((!((Left(STRING014, 1) == "(") && (Right(STRING014, 1) == ")")) && (InStr(STRING014, "&") <> 0)) || (InStr(STRING014, "|") <> 0)) STRING014 = "(" + STRING014 + ")"
If (!((Left(STRING015, 1) == "(") && (Right(STRING015, 1) == ")")) && ((InStr(STRING015, "&") <> 0) || (InStr(STRING015, "|") <> 0))) STRING015 = "(" + STRING015 + ")"
If (DATE001 == 0) STRING013 = ""
If (DATE001 <> 0) Gosub LABEL009
If (DATE001 <> 0) STRING013 = "N " + STRING013 + " "
If (STRING015 <> "") STRING016 = "Z " + STRING014 + " & ! " + STRING015 + " " + STRING013 + STRING010 + ""
If (STRING015 == "") STRING016 = "Z " + STRING014 + " " + STRING013 + STRING010 + ""
If (STRING014 == "") STRING016 = "Z ! " + STRING015 + " " + STRING013 + STRING010 + ""
If ((STRING015 == "") && (STRING014 == "")) STRING016 = "No search created yet"
Return
:LABEL009
STRING013 = Left(DATE001, 2) + Mid(DATE001, 4, 2) + Right(DATE001, 2)
Return
:LABEL010
Cls
PrintLn
PrintLn "You can enter text or phrase that you wish to search for in the file"
PrintLn "description, filename, date, or size. For example, if you wanted to list"
PrintLn "every file that contained the word DISK, then you would type DISK at the"
PrintLn "prompt below."
PrintLn
PrintLn "Complex Text Searches..."
PrintLn
PrintLn "PCBoard supports Boolean text searches. This means that you can use the"
PrintLn "Boolean operators AND (&), OR (|), or NOT (!) to help you create a more"
PrintLn "specific search. For example, if you wanted to search for any description"
PrintLn "that contained the words TEXT and the word EDITOR anywhere in the description"
PrintLn "then you would enter TEXT & EDITOR at the prompt below. On the other hand,"
PrintLn "you may suspect that someone may have used the word ASCII instead of the word"
PrintLn "TEXT when describing a file. In that case you could enter the following"
PrintLn "instead."
PrintLn
PrintLn " (ASCII | TEXT) & EDITOR"
PrintLn
InputStr "Enter Text to Search For", STRING014, 10, 54, STRING012 + "|", 30
Return
:LABEL011
PrintLn
PrintLn "You can tell PCBoard to NOT display any files that contain the text you"
PrintLn "enter at the next prompt. You may enter a single word or phrase."
PrintLn
InputStr "Enter text to exclude", STRING015, 10, 54, STRING012 + "|", 30
Return
:LABEL012
DATE001 = U_LDir()
PrintLn
PrintLn "@X03If you @X00@X0Bdo not want to search@XFF for files @X0Bbased on the date@XFF of the file then"
PrintLn "enter a date of @X0F0@XFF. This will exclude the date from the search."
PrintLn
InputDate "Enter new date to begin searching for files", DATE001, 10
Return
:LABEL013
Cls
PrintLn
PrintLn "You may specify any directory between 1 and " + String(INTEGER003) + " to search. You can specify a"
PrintLn "single directory or you may specify a range of directories using the (##-##)"
PrintLn "format. For example, if you wanted to search for files in the directories 2"
PrintLn "thru 10, you would then enter [2-10]. If you wish to combine ranges or even"
PrintLn "directories you can do this by specifing a comma."
PrintLn
PrintLn " 1-9, 15, 30-40"
PrintLn
PrintLn "This example would search, 1-9, directory 15, plus directories 30 through 40."
PrintLn
PrintLn "NOTE: There are two 'special' directory numbers you may specify. If you"
PrintLn " want to search all directories, then enter A for a directory. If"
PrintLn " you want to specify the upload directory then use a U."
PrintLn
InputStr "Enter directories to include in your search", STRING010, 10, 25, " 0123456789AUP-,", 170
Return
:LABEL014
Gosub LABEL008
Log "SEARCH: " + STRING016, 0
If (STRING016 == "No search created yet") Goto LABEL001
Dir STRING016
Goto LABEL001
:LABEL015
Cls
INTEGER006 = CurConf()
Gosub LABEL016
Gosub LABEL017
FOpen 1, STRING004, 0, 0
FGet 1, STRING005
FGet 1, INTEGER003
For INTEGER004 = 1 To INTEGER003
FGet 1, TSTRING006(INTEGER004)
Next
FClose 1
Return
:LABEL016
FOpen 1, PCBDat(), 0, 0
For INTEGER004 = 1 To 31
FGet 1, STRING007
If (INTEGER004 == 31) STRING008 = STRING007 + ".@@@"
Next
FClose 1
Return
:LABEL017
STRING002 = PPEPath() + "CFG.COM "
STRING003 = String(CurConf()) + " " + STRING008 + " "
STRING004 = PPEPath() + "CONFIG." + String(CurConf())
Shell -1, INTEGER005, STRING002, STRING003 + STRING004
Return
:LABEL018
Tokenize STRING011
GetToken STRING011
While ((Len(STRING011) > 0) && (INTEGER002 < INTEGER003)) Do
Inc INTEGER002
TINTEGER001(INTEGER002) = STRING011
STRING001 = STRING001 + " " + Strip(TSTRING006(TINTEGER001(INTEGER002)), " ")
GetToken STRING011
EndWhile
Return
:LABEL019
Delete STRING004
Newlines 1
If (INTEGER002 > 0) Then
Cls
PrintLn "@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
PrintLn "@X70│ @X74To download the directory listing's that you have flagged you would issue @X7F│@X07"
PrintLn "@X70│ @X74a (D)ownload command at which point the system will ask you if you want to @X7F│@X07"
PrintLn "@X70│ @X74download the files that you flagged. Answering NO will cause the system @X7F│@X07"
PrintLn "@X70│ @X74to forget all the files that were flagged. @X7F│@X07"
PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────@X7F┘@X07"
PrintLn
KbdStuff "FLAG " + STRING001
Endif
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 11 Cls
; 1 Wait
; 27 Goto
; 27 Let
; 80 PrintLn
; 35 If
; 2 DispFile
; 2 FOpen
; 2 FClose
; 4 FGet
; 1 GetUser
; 2 Delete
; 1 Log
; 6 InputStr
; 1 InputDate
; 13 Gosub
; 11 Return
; 1 Inc
; 2 Newlines
; 1 Tokenize
; 2 GetToken
; 1 Shell
; 1 KbdStuff
; 1 Join
; 2 Dir
;
;
; ■ Functions used :
;
; 1 -
; 50 +
; 28 ==
; 10 <>
; 3 <
; 2 <=
; 2 >
; 4 >=
; 8 !
; 10 &&
; 4 ||
; 1 Len(
; 1 Mid()
; 3 Left()
; 3 Right()
; 4 InStr()
; 1 U_LDir()
; 1 Strip()
; 5 String()
; 4 CurConf()
; 1 PCBDat()
; 2 PPEPath()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Sd
;
; S - Shell to DOS ■ 5
; This may be normal if the PPE need to execute an external command,
; but may be actually anything... nasty (formating HD, rebooting,...)
; or usefull (sorting, maintenance,...). Check!
; ■ Search for : SHELL
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 1 While/EndWhile
; 2 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------