home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / GIFCOL29.ZIP / GIFCOLG.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-03-28  |  10KB  |  465 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  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  INTEGER014
  33.     Integer  INTEGER015
  34.     Integer  INTEGER016
  35.     String   STRING001
  36.     String   STRING002
  37.     String   STRING003
  38.     String   STRING004
  39.     String   TSTRING005(11)
  40.     String   STRING006
  41.     String   STRING007
  42.     String   STRING008
  43.     String   STRING009
  44.     String   STRING010
  45.     String   STRING011
  46.     String   STRING012
  47.     String   STRING013
  48.     String   STRING014
  49.     String   STRING015
  50.  
  51. ;------------------------------------------------------------------------------
  52.  
  53.     STRING001 = "14½ùÜ▀╕╢╣ÖÜì▀╜╜¼                                                 "
  54.     STRING002 = "Y"
  55.     STRING002 = YesChar()
  56.     INTEGER007 = 15
  57.     STRING007 = ReadLine(PCBDat(), 179)
  58.     STRING008 = GetEnv("PCBNODE")
  59.     STRING009 = STRING008
  60.     STRING010 = STRING009
  61.     If (STRING009 < 100) Then
  62.         STRING010 = "0" + STRING008
  63.         If (STRING008 < 10) Then
  64.             STRING010 = "00" + STRING008
  65.         Endif
  66.     Endif
  67.     STRING011 = ReadLine(PCBDat(), 94)
  68.     STRING014 = Random(9999)
  69.     If (STRING014 > 9980) Then
  70.         STRING014 = 9980
  71.     Endif
  72.     STRING015 = "FLIST." + STRING008
  73.     Log "GIF Collage Erstellungs-Kommando eingegeben.", 0
  74.     If (TokCount() == 0) Then
  75.         PrintLn "@X0C Download Pfad nicht angegeben auf der PPE Kommando-Zeile."
  76.         Log "Download Pfad nicht angegeben auf der GIFCOLL PPE Kommando-Zeile.", 0
  77.         PrintLn "@X0F "
  78.         PrintLn "GIF Collage Fehler in der Umgebungsvariable - Informiere Deinen SysOp"
  79.         More
  80.         End
  81.     Endif
  82.     STRING013 = GetToken()
  83.     If (Exist("GIFCOLL." + STRING010)) Then
  84.         Delete "GIFCOLL." + STRING010
  85.     Endif
  86.     Shell 1, INTEGER016, PPEPath() + "GIFCOL0.EXE " + STRING010 + STRING001, ""
  87.     INTEGER016 = 1
  88.     If (Exist("GIFCOLL." + STRING010)) Then
  89.         FOpen 1, "GIFCOLL." + STRING010, 0, 0
  90.         FGet 1, STRING012
  91.         FClose 1
  92.         Delete "GIFCOLL." + STRING010
  93.         If (Exist(PPEPath() + "GIFCOLL." + STRING009)) Then
  94.             Delete PPEPath() + "GIFCOLL." + STRING009
  95.         Endif
  96.         If (STRING011 == STRING012) Then
  97.             INTEGER016 = 0
  98.         Else
  99.             Tokenize STRING011
  100.             If (TokCount() < 6) Then
  101.                 Goto LABEL001
  102.             Endif
  103.             Select Case (GetToken())
  104.                 Case "BITS"
  105.                 Case "AND"
  106.                 Case "BYTES"
  107.                 Case "BBS"
  108.                     INTEGER016 = 0
  109.                 Endif
  110.             Endif
  111.     End Select
  112.     :LABEL001
  113.     Cls
  114.     PrintLn " "
  115.     PrintLn "@X38┌────────────────────────────────────────────────────────────────────────────@X3B┐@X0B"
  116.     If (INTEGER016 == 0) Then
  117.         PrintLn "@X38│@X39                 GIF Collage Ersteller - Registriert v2.7                   @X3B│@X0B"
  118.     Else
  119.         PrintLn "@X38│@X3E                   GIF Collage Ersteller - Shareware v2.7                   @X3B│@X0B"
  120.         PrintLn "@X38│@X3E                      Unregistrierte Evaluations Kopie                      @X3B│@X0B"
  121.     Endif
  122.     PrintLn "@X38└@X3B────────────────────────────────────────────────────────────────────────────┘@X0F"
  123.     If (Exist("GIFCOLL." + STRING010)) Delete "GIFCOLL." + STRING010
  124.     If (Exist("FLIST" + STRING009 + ".WRK")) Delete "FLIST" + STRING009 + ".WRK"
  125.     If (Exist(STRING015)) Goto LABEL002
  126.     Log "PCBoard Kontrollfile " + STRING015 + " nicht gefunden, nichts markiert.", 0
  127.     Goto LABEL006
  128.     :LABEL002
  129.     SaveScrn
  130.     Shell 1, INTEGER001, PPEPath() + "GIFCOL1.EXE " + STRING009 + STRING008, ""
  131.     RestScrn
  132.     INTEGER001 = 0
  133.     If (Exist("GIFCOLL." + STRING010)) Then
  134.         Goto LABEL003
  135.     Endif
  136.     Log "Unfähig das PCBoard Kontrollfile zu lesen " + STRING015, 0
  137.     Log "Wahrscheinlicher Installationsfehler.", 0
  138.     Log "Sei sicher, dass Du SHARE geladen hast.", 0
  139.     Goto LABEL006
  140.     :LABEL003
  141.     FOpen 1, "GIFCOLL." + STRING010, 0, 0
  142.     FGet 1, STRING012
  143.     :LABEL004
  144.     If (Ferr(1)) Goto LABEL005
  145.     INTEGER001 = INTEGER001 + 1
  146.     FGet 1, STRING012
  147.     Goto LABEL004
  148.     :LABEL005
  149.     FClose 1
  150.     If (INTEGER001 > 1) Then
  151.         INTEGER001 = INTEGER001 / 2
  152.     Endif
  153.     If (INTEGER001 > 0) Then
  154.         Goto LABEL007
  155.     Endif
  156.     :LABEL006
  157.     PrintLn " "
  158.     PrintLn "@X0EDu hast kein einziges GIF-Bild für ein Collage markiert.@X0F"
  159.     PrintLn " "
  160.     DispFile HelpPath() + "GIF", 1 + 4
  161.     End
  162.     :LABEL007
  163.     If (INTEGER001 > 99) Then
  164.         PrintLn "@X0ADu hast ", INTEGER001, " GIF's markiert - 99 sind das Maximum für dieses Kommando."
  165.         PrintLn "Die ersten 99 von diesen können in Collage-Files plaziert werden."
  166.         InputStr "Willst Du weiterfahren (@X0CY@X0E oder @X0CN@X0E)", STRING002, 14, 1, "", 8192 + 16384
  167.         If (Upper(STRING002) == "N") Then
  168.             Cls
  169.             End
  170.         Endif
  171.         INTEGER001 = 99
  172.     Endif
  173.     INTEGER008 = INTEGER001
  174.     If (INTEGER016 == 0) Then
  175.         Goto LABEL008
  176.     Endif
  177.     PrintLn " "
  178.     Print "@X0ESage Deinem SysOp er soll das Programm registrieren, damit es keine Wartezeiten mehr gibt. "
  179.     Print "@X0C"
  180.     For INTEGER002 = 1 To INTEGER007
  181.         Print "/"
  182.         Delay 4
  183.         Backup 1
  184.         Print "-"
  185.         Delay 5
  186.         Backup 1
  187.         Print "\"
  188.         Delay 4
  189.         Backup 1
  190.         Print "|"
  191.         Backup 1
  192.         Delay 5
  193.     Next
  194.     Backup 66
  195.     ClrEol
  196.     Goto LABEL009
  197.     :LABEL008
  198.     PrintLn " "
  199.     :LABEL009
  200.     PrintLn "@X0FDu hast @X0A", INTEGER008, "@X0F GIF-Bilder markiert."
  201.     PrintLn " "
  202.     INTEGER013 = INTEGER008 / 9 + 1
  203.     INTEGER014 = INTEGER008 * 20 + INTEGER013 * 13
  204.     INTEGER011 = INTEGER014 / 60
  205.     If (INTEGER011 == 0) Then
  206.         INTEGER011 = 1
  207.     Endif
  208.     INTEGER012 = INTEGER011 + 1
  209.     If (INTEGER012 < 3) Then
  210.         PrintLn "@X0FEs wird 1-2 Minuten dauern Dein Collage zu erstellen. Bitte gedulde Dich."
  211.         PrintLn 
  212.     Else
  213.         If (MinLeft() < INTEGER012) Then
  214.             If (INTEGER013 < 10) Then
  215.                 PrintLn "@X0ADu hast nicht genügend Zeit übrig um das Collage-Bild zu erstellen."
  216.                 Goto LABEL010
  217.             Endif
  218.             PrintLn "@X0ADu hast nicht genügend Zeit übrig um die Collage-Bilder zu erstellen."
  219.             :LABEL010
  220.             PrintLn "@X0F"
  221.             End
  222.         Endif
  223.         If (INTEGER001 < 10) Then
  224.             PrintLn "@X0FEs wird @X0E", INTEGER011, "-", INTEGER012, " Minuten@X0F dauern das Collage-Bild zu erstellen."
  225.         Else
  226.             PrintLn "@X0FEs wird @X0E", INTEGER011, "-", INTEGER012, " Minuten@X0F dauern die Collage-Bilder zu erstellen."
  227.         Endif
  228.         InputStr "@X0EWillst Du weiterfahren (@X0CY@X0E oder@X0C N@X0E)", STRING002, 14, 1, "", 8192 + 16384
  229.         If (Upper(STRING002) == "N") Then
  230.             Cls
  231.             End
  232.         Endif
  233.         Newline
  234.         PrintLn " "
  235.         PrintLn "@X0AOK, es geht los...."
  236.         PrintLn " "
  237.     Endif
  238.     If (Exist("GIFDEDK.CMD")) Goto LABEL011
  239.     Copy PPEPath() + "GIFDESK.CMD", "GIFDESK.CMD"
  240.     :LABEL011
  241.     For INTEGER002 = 1 To 11
  242.         TSTRING005(INTEGER002) = "*"
  243.     Next
  244.     INTEGER015 = 1
  245.     SaveScrn
  246.     Shell 1, INTEGER002, "ATTRIB -r " + STRING007 + "*.GIF", ""
  247.     Shell 1, INTEGER002, "DEL " + STRING007 + "*.GIF", ""
  248.     RestScrn
  249.     If (Exist("GIFDSK00.GIF")) Delete "GIFDSK00.GIF"
  250.     FOpen 1, "GIFCOLL." + STRING010, 0, 0
  251.     INTEGER010 = 0
  252.     INTEGER003 = GetX()
  253.     INTEGER004 = GetY()
  254.     :LABEL012
  255.     INTEGER009 = 9
  256.     If (INTEGER001 < 10) Then
  257.         INTEGER009 = INTEGER001
  258.     Endif
  259.     INTEGER001 = INTEGER001 - INTEGER009
  260.     INTEGER010 = INTEGER010 + 1
  261.     Print "@X0EBereite @X0C", INTEGER009, "@X0E Bilder für das Collage #", INTEGER010, " vor:@X0A"
  262.     INTEGER005 = GetX()
  263.     INTEGER006 = GetY()
  264.     For INTEGER002 = 1 To INTEGER009
  265.         FGet 1, STRING012
  266.         STRING003 = STRING012
  267.         FGet 1, STRING012
  268.         STRING004 = STRING007 + STRING012
  269.         AnsiPos INTEGER005, INTEGER006
  270.         ClrEol
  271.         Print " Bearbeite ", INTEGER002, " ", STRING012
  272.         Copy STRING003, STRING004
  273.     Next
  274.     AnsiPos INTEGER003, INTEGER004
  275.     ClrEol
  276.     :LABEL013
  277.     STRING014 = STRING014 + 1
  278.     STRING004 = STRING014
  279.     STRING003 = "C" + STRING009 + STRING004 + ".GIF"
  280.     INTEGER002 = 1
  281.     While (INTEGER002 < INTEGER015 + 1) Do
  282.         If (STRING003 == TSTRING005(INTEGER002)) Then
  283.             Goto LABEL013
  284.         Endif
  285.         INTEGER002 = INTEGER002 + 1
  286.     EndWhile
  287.     Print "@X0EErstelle GIF-Collage #", INTEGER010, " (", STRING003, ") - Bitte gedulde Dich...."
  288.     SaveScrn
  289.     Shell 1, INTEGER002, PPEPath() + "GIFDESK.EXE " + STRING007 + "*.gif", ""
  290.     RestScrn
  291.     If (Exist("GIFDSK00.GIF")) Goto LABEL014
  292.     PrintLn "@X0AGIFDESK Collage Erstellung misslungen - Benachrichtige Deinen SysOp."
  293.     Log "GIFDESK hat das Collage nicht erstellt.", 0
  294.     PrintLn " "
  295.     PrintLn "@PAUSE@"
  296.     End
  297.     :LABEL014
  298.     AnsiPos INTEGER003, INTEGER004
  299.     ClrEol
  300.     PrintLn "@X0AGIF-Collage #", INTEGER010, " (", STRING003, ") ist bereit und wird in die Downloadarea kopiert"
  301.     INTEGER003 = GetX()
  302.     INTEGER004 = GetY()
  303.     TSTRING005(INTEGER015) = STRING003
  304.     INTEGER015 = INTEGER015 + 1
  305.     STRING004 = STRING013 + "\" + STRING003
  306.     STRING003 = "GIFDSK00.GIF"
  307.     Copy STRING003, STRING004
  308.     Delete "GIFDSK00.GIF"
  309.     SaveScrn
  310.     Shell 1, INTEGER002, "ATTRIB -r " + STRING007 + "*.GIF", ""
  311.     Shell 1, INTEGER002, "DEL " + STRING007 + "*.GIF", ""
  312.     RestScrn
  313.     AnsiPos INTEGER003, INTEGER004
  314.     If (INTEGER001 > 0) Then
  315.         Goto LABEL012
  316.     Endif
  317.     FClose 1
  318.     Delete "FLIST" + STRING009 + ".WRK"
  319.     Delete "GIFCOLL." + STRING010
  320.     PrintLn " "
  321.     PrintLn "@X0ADein(e) Collage-Bild(er) sind für den Download bereit. @X0CWenn Du die ganzen"
  322.     PrintLn "GIF-Bilder nicht downloaden willst antworte @X0F[N]@X0Cein bei untenstehender Frage."
  323.     PrintLn "Wenn Du diese auch zusammen mit den Collage-Bildern downloaden willst musst Du"
  324.     PrintLn "mit @X0F[Y]@X0Ces antworten."
  325.     STRING006 = TSTRING005(1)
  326.     INTEGER015 = 2
  327.     While (TSTRING005(INTEGER015) <> "*") Do
  328.         STRING006 = STRING006 + ";" + TSTRING005(INTEGER015)
  329.         INTEGER015 = INTEGER015 + 1
  330.         If (INTEGER015 > 11) Then
  331.             Break
  332.         Endif
  333.     EndWhile
  334.     Download STRING006
  335.     INTEGER015 = 1
  336.     While (TSTRING005(INTEGER015) <> "*") Do
  337.         Delete STRING013 + "\" + TSTRING005(INTEGER015)
  338.         INTEGER015 = INTEGER015 + 1
  339.         If (INTEGER015 > 11) Then
  340.             Break
  341.         Endif
  342.     EndWhile
  343.     If (INTEGER016 <> 0) Then
  344.         Cls
  345.         PrintLn " "
  346.         PrintLn " "
  347.         PrintLn " "
  348.         PrintLn " "
  349.         PrintLn " "
  350.         PrintLn "@X38┌────────────────────────────────────────────────────────────────────────────@X3B┐@X0B"
  351.         PrintLn "@X38│                         @X39GIF Collage Ersteller v2.7                         @X3B│@X0B"
  352.         PrintLn "@X38│@X3E                                                                            @X3B│@X0B"
  353.         PrintLn "@X38│@X3E Vielen Dankef die Benutzung des GIF-Collage Erstellers. Wenn Du dieses     @X3B│@X0B"
  354.         PrintLn "@X38│@X3E PCBoard Zusatzprogramm nützlich findest frage doch bitte Deinen SysOp ob   @X3B│@X0B"
  355.         PrintLn "@X38│@X3E er es registrieren kann! Du kannst ihm ja eine Kostenbeteiligung           @X3B│@X0B"
  356.         PrintLn "@X38│@X3E offerieren, damit Du beim Aufstarten desselben nicht mehr lange warten     @X3B│@X0B"
  357.         PrintLn "@X38│@X3E musst.                                                                     @X3B│@X0B"
  358.         PrintLn "@X38│@X3E                                                                            @X3B│@X0B"
  359.         PrintLn "@X38│@X39                  Erinnere Dich, Shareware ist NICHT gratis!                @X3B│@X0B"
  360.         PrintLn "@X38│@X3E                                                                            @X3B│@X0B"
  361.         PrintLn "@X38└@X3B────────────────────────────────────────────────────────────────────────────┘@X0F"
  362.         PrintLn " "
  363.         PrintLn " "
  364.         PrintLn " "
  365.         PrintLn " "
  366.         PrintLn " "
  367.         PrintLn "@PAUSE@"
  368.     Endif
  369.     End
  370.  
  371. ;------------------------------------------------------------------------------
  372. ;
  373. ; Usage report (before postprocessing)
  374. ;
  375. ; ■ Statements used :
  376. ;
  377. ;    7       End
  378. ;    4       Cls
  379. ;    4       ClrEol
  380. ;    1       More
  381. ;    65      Goto 
  382. ;    64      Let 
  383. ;    9       Print 
  384. ;    60      PrintLn 
  385. ;    45      If 
  386. ;    1       DispFile 
  387. ;    3       FOpen 
  388. ;    3       FClose 
  389. ;    5       FGet 
  390. ;    10      Delete 
  391. ;    7       Log 
  392. ;    2       InputStr 
  393. ;    4       Delay 
  394. ;    1       Newline
  395. ;    1       Tokenize 
  396. ;    7       Shell 
  397. ;    4       AnsiPos 
  398. ;    5       Backup 
  399. ;    4       SaveScrn
  400. ;    4       RestScrn
  401. ;    3       Copy 
  402. ;    1       Download 
  403. ;
  404. ;
  405. ; ■ Functions used :
  406. ;
  407. ;    2       *
  408. ;    3       /
  409. ;    73      +
  410. ;    1       -
  411. ;    12      ==
  412. ;    3       <>
  413. ;    12      <
  414. ;    3       <=
  415. ;    7       >
  416. ;    6       >=
  417. ;    39      !
  418. ;    6       &&
  419. ;    3       ||
  420. ;    2       Upper()
  421. ;    1       Ferr()
  422. ;    1       Random()
  423. ;    1       YesChar()
  424. ;    2       PCBDat()
  425. ;    6       PPEPath()
  426. ;    2       ReadLine()
  427. ;    5       GetToken()
  428. ;    1       MinLeft()
  429. ;    1       GetEnv()
  430. ;    10      Exist()
  431. ;    3       GetX()
  432. ;    3       GetY()
  433. ;    1       HelpPath()
  434. ;    2       TokCount()
  435. ;
  436. ;------------------------------------------------------------------------------
  437. ;
  438. ; Analysis flags : Sd
  439. ;
  440. ; S - Shell to DOS ■ 5
  441. ;     This may be normal if the PPE need to execute an external command,
  442. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  443. ;     or usefull (sorting, maintenance,...). Check!
  444. ;     ■ Search for : SHELL
  445. ;
  446. ; d - Access PCBOARD.DAT ■ 2
  447. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  448. ;     for many PPE so they can find various informations on the system
  449. ;     (system paths, max number of lines in messages, ...) but it may also
  450. ;     be a way to gather vital informations.
  451. ;     ■ Search for : PCBDAT()
  452. ;
  453. ;------------------------------------------------------------------------------
  454. ;
  455. ; Postprocessing report
  456. ;
  457. ;    3       For/Next
  458. ;    3       While/EndWhile
  459. ;    28      If/Then or If/Then/Else
  460. ;    1       Select Case
  461. ;
  462. ;------------------------------------------------------------------------------
  463. ;                 AEGiS Corp - Break the routines, code against the machines!
  464. ;------------------------------------------------------------------------------
  465.