home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR11 / MAIL2FX2.ZIP / SENDFAX.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-09-18  |  6KB  |  258 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 1.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     String   STRING001
  23.     String   STRING002
  24.     String   STRING003
  25.     String   STRING004
  26.     String   STRING005
  27.     String   STRING006
  28.     String   STRING007
  29.     String   STRING008
  30.     String   STRING009
  31.     String   STRING010
  32.     String   STRING011
  33.     String   STRING012
  34.  
  35. ;------------------------------------------------------------------------------
  36.  
  37.     GetToken STRING001
  38.     GetToken STRING002
  39.     GetToken STRING011
  40.     STRING010 = "N"
  41.     STRING012 = "FAX MAIL"
  42.     STRING009 = "FAXALIAS.TXT"
  43.     PrintLn 
  44.     PrintLn "@X5FThis command allows you to enter a message that is to be sent via FAX@X0F"
  45.     PrintLn 
  46.     STRING003 = ""
  47.     InputYN "Is that what you want to do", STRING003, 14
  48.     If (STRING003 <> YesChar()) Goto LABEL005
  49.     Log "Fax Invoked", 1
  50.     PrintLn 
  51.     PrintLn "@X38┌────────────────────────────────────────────────────────────────────────────@X3B┐@X0F"
  52.     PrintLn "@X38│@X3E This command allows you to enter a message that will be sent via FAX.      @X3B│@X0F"
  53.     PrintLn "@X38│@X3E                                                                            @X3B│@X0F"
  54.     PrintLn "@X38│@X3E You'll need to provide the Fax number and the name of the person or        @X3B│@X0F"
  55.     PrintLn "@X38│@X3E company that you'll be sending this to.                                    @X3B│@X0F"
  56.     PrintLn "@X38│@X3E The fax number must be 7 digits (Metro Toronto only), or a valid Alias.    @X3B│@X0F"
  57.     PrintLn "@X38│@X3E (See the bulletin for a list of aliasses.)                                 @X3B│@X0F"
  58.     PrintLn "@X38│@X3E                                                                            @X3B│@X0F"
  59.     PrintLn "@X38│@X3E Please note that this is for OUTBOUND faxing only.  We have no provisions  @X3B│@X0F"
  60.     PrintLn "@X38│@X3E to Receive faxes for you.                                                  @X3B│@X0F"
  61.     PrintLn "@X38│@X3E                                                                            @X3B│@X0F"
  62.     PrintLn "@X38│@X3E Our Fax Mail system will send you a reply message if it was unable to      @X3B│@X0F"
  63.     PrintLn "@X38│@X3E transmit your fax successfully.                                            @X3B│@X0F"
  64.     PrintLn "@X38│@X3E                                                                            @X3B│@X0F"
  65.     PrintLn "@X38│@X3E Faxes are sent about every hour.                                           @X3B│@X0F"
  66.     PrintLn "@X38└@X3B────────────────────────────────────────────────────────────────────────────┘@X0F"
  67.     PrintLn 
  68.     STRING004 = ""
  69.     STRING005 = ""
  70.     STRING006 = ""
  71.     :LABEL001
  72.     PrintLn 
  73.     PrintLn "Enter fax number to send fax to, or alias name, ? for list"
  74.     InputText "Fax number, alias (or ?)", STRING004, 14, 14
  75.     FreshLine
  76.     If (Len(LTrim(STRING004, " ")) == 0) Then
  77.         InputYN "Abort FAX entry", STRING003, 14
  78.         If (STRING003 == YesChar()) Goto LABEL005
  79.     Endif
  80.     If (STRING004 == "?") Then
  81.         PrintLn " The defined Fax Aliasses are"
  82.         DispFile STRING009, 0
  83.         Goto LABEL001
  84.     Endif
  85.     STRING003 = Strip(Strip(Strip(Strip(STRING004, " "), ")"), "("), "-")
  86.     If ((Left(STRING003, 1) < "0") || (Left(STRING003, 1) > "9")) Then
  87.         FOpen 1, STRING009, 0, 0
  88.         INTEGER001 = 1
  89.         INTEGER002 = 0
  90.         STRING003 = " " + Upper(STRING004) + " "
  91.         :LABEL002
  92.         If (Ferr(1)) Goto LABEL003
  93.         FGet 1, STRING008
  94.         INTEGER002 = InStr(Upper(STRING008), STRING003)
  95.         If (INTEGER002 <> 0) Then
  96.             Goto LABEL003
  97.         Endif
  98.         Inc INTEGER001
  99.         Goto LABEL002
  100.         :LABEL003
  101.         FClose 1
  102.         If (INTEGER002 == 0) Then
  103.             PrintLn "@X34Not a valid fax number or alias@X0F"
  104.             Goto LABEL001
  105.         Endif
  106.         INTEGER002 = INTEGER002 + Len(STRING003)
  107.         STRING003 = Mid(STRING008, INTEGER002, Len(STRING008) - INTEGER002 + 1)
  108.     Else
  109.         If (STRING002 == "N") Then
  110.             If (Len(STRING003) <> 7) Then
  111.                 PrintLn "@X34Seven digit fax numbers only@X0F"
  112.                 Goto LABEL001
  113.             Endif
  114.             If ((Left(STRING003, 1) == "1") || (Left(STRING003, 1) == "0")) Then
  115.                 PrintLn "@X34Local fax numbers only@X0F"
  116.                 Goto LABEL001
  117.             Endif
  118.             STRING003 = Left(STRING003, 3)
  119.             If (InStr("411~611~911~976~", STRING003 + "~") <> 0) Then
  120.                 PrintLn "@X34" + STRING003 + " is not a valid fax number@X0F"
  121.                 Goto LABEL001
  122.             Endif
  123.         Else
  124.             If (((Len(STRING003) < 7) || (Len(STRING003) > 11)) || (Len(STRING003) == 9)) Then
  125.                 PrintLn "@X34Wrong number of digits@X0F"
  126.                 Goto LABEL001
  127.             Endif
  128.             Select Case (Len(STRING003))
  129.                 Case 7
  130.                     STRING003 = Left(STRING003, 3)
  131.                 Case 8
  132.                     STRING003 = Mid(STRING003, 2, 3)
  133.                 Case 10
  134.                     STRING003 = Mid(STRING003, 4, 3)
  135.                 Case 11
  136.                     STRING003 = Mid(STRING003, 5, 3)
  137.             End Select
  138.             If (InStr("411~611~911~976~", STRING003 + "~") <> 0) Then
  139.                 PrintLn "@X34" + STRING003 + " is not a valid fax number@X0F"
  140.                 Goto LABEL001
  141.             Endif
  142.         Endif
  143.     Endif
  144.     PrintLn 
  145.     PrintLn "@X0BPlease enter the following for the fax's cover sheet@X0F"
  146.     PrintLn 
  147.     InputText "To whose attention ", STRING005, 14, 25
  148.     PrintLn 
  149.     PrintLn 
  150.     InputText "What is the subject ", STRING006, 14, 25
  151.     FreshLine
  152.     If (Len(LTrim(STRING006, " ")) == 0) Then
  153.         InputYN "Abort FAX entry", STRING003, 14
  154.         If (STRING003 == YesChar()) Goto LABEL005
  155.     Endif
  156.     :LABEL004
  157.     PrintLn 
  158.     PrintLn "@X0BShould we notify you if the FAX:@X0F"
  159.     PrintLn "@X0B  1 - could not be delivered, or@X0F"
  160.     PrintLn "@X0B  2 - in all cases@X0F"
  161.     INTEGER003 = "1"
  162.     InputStr "@X0B  (1 or 2) ", INTEGER003, 14, 1, "12", 64
  163.     If ((INTEGER003 <> 2) && (INTEGER003 <> 1)) Then
  164.         PrintLn "@X34Enter 1 or 2 only - Please re-enter@X0F"
  165.         Goto LABEL004
  166.     Endif
  167.     STRING007 = "N"
  168.     If (INTEGER003 == 2) Then
  169.         STRING007 = "Y"
  170.     Endif
  171.     PrintLn 
  172.     STRING003 = ""
  173.     InputYN "Is the above information correct", STRING003, 14
  174.     PrintLn 
  175.     If (STRING003 <> YesChar()) Goto LABEL001
  176.     Join STRING001
  177.     Log "Fax Edit", 1
  178.     PrintLn 
  179.     PrintLn "@X0BWe will now invoke the editor to allow you to enter the@X0F"
  180.     PrintLn "@X0Btext for your fax.  Use Editor's  U command to UPLOAD text.@X0F"
  181.     KbdStuff "E" + Chr(13)
  182.     KbdStuff STRING012 + " @" + STRING004 + Chr(13)
  183.     KbdStuff STRING006 + Chr(13)
  184.     If ("" == "Y") Then
  185.         KbdStuff STRING010 + Chr(13)
  186.     Endif
  187.     KbdStuff STRING007 + Chr(13)
  188.     KbdStuff Chr(255) + Chr(255) + "@ATTENTN:"
  189.     KbdStuff Left(STRING005 + Space(59), 60) + "N" + Chr(13)
  190.     :LABEL005
  191.     End
  192.  
  193. ;------------------------------------------------------------------------------
  194. ;
  195. ; Usage report (before postprocessing)
  196. ;
  197. ; ■ Statements used :
  198. ;
  199. ;    1       End
  200. ;    39      Goto 
  201. ;    23      Let 
  202. ;    45      PrintLn 
  203. ;    24      If 
  204. ;    1       DispFile 
  205. ;    1       FOpen 
  206. ;    1       FClose 
  207. ;    1       FGet 
  208. ;    2       Log 
  209. ;    1       InputStr 
  210. ;    4       InputYN 
  211. ;    1       Inc 
  212. ;    3       GetToken 
  213. ;    3       InputText 
  214. ;    7       KbdStuff 
  215. ;    1       Join 
  216. ;    2       FreshLine
  217. ;
  218. ;
  219. ; ■ Functions used :
  220. ;
  221. ;    22      +
  222. ;    1       -
  223. ;    16      ==
  224. ;    8       <>
  225. ;    2       <
  226. ;    2       >
  227. ;    20      !
  228. ;    1       &&
  229. ;    4       ||
  230. ;    12      Len(
  231. ;    2       Upper()
  232. ;    4       Mid()
  233. ;    7       Left()
  234. ;    1       Space()
  235. ;    1       Ferr()
  236. ;    8       Chr()
  237. ;    3       InStr()
  238. ;    2       LTrim()
  239. ;    4       YesChar()
  240. ;    4       Strip()
  241. ;
  242. ;------------------------------------------------------------------------------
  243. ;
  244. ; Analysis flags : No flag
  245. ;
  246. ;------------------------------------------------------------------------------
  247. ;
  248. ; Postprocessing report
  249. ;
  250. ;    0       For/Next
  251. ;    0       While/EndWhile
  252. ;    15      If/Then or If/Then/Else
  253. ;    1       Select Case
  254. ;
  255. ;------------------------------------------------------------------------------
  256. ;                 AEGiS Corp - Break the routines, code against the machines!
  257. ;------------------------------------------------------------------------------
  258.