home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SCAN_300.ZIP
/
SCAN.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-07-18
|
4KB
|
275 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
;------------------------------------------------------------------------------
Boolean TBOOLEAN001(1000)
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer TINTEGER004(1000)
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
;------------------------------------------------------------------------------
GetUser
RdUNet PcbNode()
WrUNet PcbNode(), UN_Stat(), UN_Name(), UN_City(), "SCANS FOR NEW FiLES", ""
If (Exist(PPEPath() + "USERDATA\USERPATH")) Goto LABEL001
FCreate 1, "DATA.BAT", 2, 0
FPutLn 1, "@ECHO OFF"
FPutLn 1, "MD " + PPEPath() + "USERDATA"
FPutLn 1, "REM > " + PPEPath() + "USERDATA\USERPATH"
FClose 1
SaveScrn
Shell 1, STRING005, "DATA.BAT", 0
RestScrn
Delete "DATA.BAT"
:LABEL001
INTEGER003 = CurConf()
STRING006 = PPEPath() + "\USERDATA\"
INTEGER001 = ReadLine(PCBDat(), 108)
FClose -1
For INTEGER002 = 1 To Len(U_Name())
STRING010 = STRING010 + Asc(Mid(Mixed(U_Name()), INTEGER002, 1)) / 4
Next
STRING008 = Strip(U_Name(), " ")
STRING008 = Strip(STRING008, ".")
If (Len(U_Name()) < 14) STRING007 = STRING008 + "." + STRING010
If (STRING007 <> "") Goto LABEL002
STRING007 = Mid(STRING008, 1, 1)
STRING007 = STRING007 + Mid(STRING008, 3, 1)
STRING007 = STRING007 + Mid(STRING008, 5, 1)
STRING007 = STRING007 + Mid(STRING008, 7, 1)
STRING007 = STRING007 + Mid(STRING008, 9, 1)
STRING007 = STRING007 + Mid(STRING008, 11, 1)
STRING007 = STRING007 + Mid(STRING008, 13, 1)
STRING007 = STRING007 + Mid(STRING008, 15, 1)
STRING007 = STRING007 + "." + STRING010
:LABEL002
If (Exist(PPEPath() + "SCANDAT" + LangExt())) Goto LABEL004
If (Exist(PPEPath() + "SCANDAT")) Goto LABEL003
SPrintLn
SPrintLn "NO 'SCANDAT' FiLE WAS FOUND ! CREATE ONE BEFORE STARTiNG AGAiN !"
SPrintLn "READ THE DOCUMENTS FOR FURTHER INFORMATiON !"
Goto LABEL012
:LABEL003
FOpen 2, PPEPath() + "SCANDAT", 0, 0
:LABEL004
If (Exist(PPEPath() + "SCANDAT" + LangExt())) FOpen 2, PPEPath() + "SCANDAT" + LangExt() , 0, 0
FGet 2, STRING001
FGet 2, STRING002
FClose 2
If (Exist(STRING006 + STRING007)) Goto LABEL005
Call PPEPath() + "SELECT.PPE"
:LABEL005
FOpen 2, STRING006 + STRING007, 0, 0
For INTEGER002 = 0 To INTEGER001
FGet 2, TINTEGER004(INTEGER002)
FGet 2, TBOOLEAN001(TINTEGER004(INTEGER002))
Next
FClose 2
Newline
:LABEL006
Print "@POFF@", STRING001
:LABEL007
STRING005 = Inkey()
If ((((STRING005 == Chr(13)) || (STRING005 == Chr(10))) || (STRING005 == Chr(32))) || (Upper(STRING005) == YesChar())) Then
Backup 80
ClrEol
Else
If (((STRING005 == Chr(27)) || (Upper(STRING005) == NoChar())) || (Upper(STRING005) == "Q")) Then
Backup 80
ClrEol
Goto LABEL012
Endif
If (Upper(STRING005) == "S") Then
Backup 80
ClrEol
Call PPEPath() + "SELECT.PPE"
FOpen 2, STRING006 + STRING007, 0, 0
For INTEGER002 = 0 To INTEGER001
FGet 2, TINTEGER004(INTEGER002)
FGet 2, TBOOLEAN001(TINTEGER004(INTEGER002))
Next
FClose 2
Goto LABEL006
Endif
Goto LABEL007
Endif
:LABEL008
STRING004 = Mid(U_LDate(), 1, 2) + Mid(U_LDate(), 4, 2) + Mid(U_LDate(), 7, 2)
PromptStr 72, STRING004, 6, Mask_Num(), 2 + 4 + 1024
If (ValDate(STRING004) == 0) Then
Backup 80
ClrEol
Goto LABEL008
Endif
STRING009 = STRING004
Backup 80
ClrEol
For INTEGER002 = 0 To INTEGER001
If (TBOOLEAN001(TINTEGER004(INTEGER002)) == 1) Then
STRING003 = "N " + STRING009 + " U"
Join INTEGER002
Newline
Dir STRING003
Newline
If (INTEGER002 <> INTEGER001) Then
Print STRING002
:LABEL009
STRING005 = Inkey()
If (STRING005 <> "") Goto LABEL010
Goto LABEL009
:LABEL010
If (Upper(STRING005) == NoChar()) Then
Backup 80
ClrEol
Goto LABEL012
Endif
If (Upper(STRING005) == YesChar()) Goto LABEL011
If (Upper(STRING005) == Chr(32)) Goto LABEL011
If (Upper(STRING005) == Chr(13)) Goto LABEL011
If (Upper(STRING005) == Chr(10)) Goto LABEL011
Goto LABEL009
:LABEL011
Backup 80
ClrEol
Endif
Endif
Next
:LABEL012
Join INTEGER003
If (STRING004 <> "") Log "
DiAMONDS `SCAN 3.00' FiNiSHED AT " + Mid(Time(), 1, 5) + "
", 0
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 7 ClrEol
; 35 Goto
; 29 Let
; 2 Print
; 24 If
; 1 FCreate
; 4 FOpen
; 5 FClose
; 6 FGet
; 3 FPutLn
; 1 GetUser
; 1 Delete
; 1 Log
; 1 PromptStr
; 3 Newline
; 1 Shell
; 2 Call
; 2 Join
; 1 Dir
; 1 RdUNet
; 1 WrUNet
; 7 Backup
; 1 SaveScrn
; 1 RestScrn
; 3 SPrintLn
;
;
; ■ Functions used :
;
; 1 -
; 1 /
; 43 +
; 15 ==
; 4 <>
; 5 <
; 4 <=
; 8 >=
; 15 !
; 8 &&
; 9 ||
; 3 Len(
; 9 Upper()
; 13 Mid()
; 7 Chr()
; 1 Asc()
; 1 Time()
; 5 U_Name()
; 3 U_LDate()
; 2 NoChar()
; 2 YesChar()
; 2 Strip()
; 2 Inkey()
; 1 Mask_Num()
; 1 CurConf()
; 1 PCBDat()
; 11 PPEPath()
; 1 ValDate()
; 2 PcbNode()
; 1 ReadLine()
; 1 UN_Stat()
; 1 UN_Name()
; 1 UN_City()
; 5 Exist()
; 3 LangExt()
; 1 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : SCd
;
; 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
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
; 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
;
; 4 For/Next
; 0 While/EndWhile
; 7 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------