home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR14 / 14SFX115.ZIP / EUTMOD2.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-02-11  |  27KB  |  1,422 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.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  TBOOLEAN003(1)
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Date     DATE001
  26.     Integer  INTEGER001
  27.     Integer  INTEGER002
  28.     Integer  INTEGER003
  29.     Integer  INTEGER004
  30.     Integer  INTEGER005
  31.     Real     REAL001
  32.     Real     REAL002
  33.     Real     REAL003
  34.     String   STRING001
  35.     String   STRING002
  36.     String   STRING003
  37.     String   STRING004
  38.     String   STRING005
  39.     String   STRING006
  40.     String   STRING007
  41.     String   STRING008
  42.     String   STRING009
  43.     String   STRING010
  44.     String   STRING011
  45.     Time     TIME001
  46.     Byte     BYTE001
  47.     Byte     BYTE002
  48.     Byte     BYTE003
  49.     Byte     BYTE004
  50.     Byte     BYTE005
  51.     Byte     BYTE006
  52.  
  53. ;------------------------------------------------------------------------------
  54.  
  55.     GetToken STRING003
  56.     Select Case (STRING003)
  57.         Case "1"
  58.             Gosub LABEL016
  59.             Goto LABEL039
  60.         Case "2"
  61.             Gosub LABEL020
  62.             Goto LABEL039
  63.         Case "3"
  64.             STRING003 = ""
  65.             GetToken STRING003
  66.             If (STRING003 == "A") Then
  67.                 BOOLEAN006 = 1
  68.                 Gosub LABEL007
  69.                 Goto LABEL039
  70.             Else
  71.                 BOOLEAN006 = 0
  72.                 Gosub LABEL007
  73.                 Goto LABEL039
  74.             Endif
  75.         Case "4"
  76.             Gosub LABEL029
  77.             Goto LABEL039
  78.         Case "5"
  79.             Gosub LABEL031
  80.             Goto LABEL039
  81.         Case "6"
  82.             Gosub LABEL003
  83.             Goto LABEL039
  84.         Case "7"
  85.             Gosub LABEL001
  86.             Goto LABEL039
  87.         Case Else
  88.             PrintLn 
  89.             PrintLn "@X0CEUTMOD2 : FATAL ERROR -- INVALID COMMAND PARAMETERS"
  90.             PrintLn 
  91.             PrintLn "@X0AEUTMOD2.PPE can only be ran from within EDSUTIL.PPE!"
  92.             PrintLn 
  93.             Delay 9
  94.             Goto LABEL039
  95.     End Select
  96.     :LABEL001
  97.     Gosub LABEL033
  98.     PrintLn 
  99.     STRING002 = PPEPath() + "TRASH.XPT"
  100.     STRING008 = PPEPath() + "EXPORT.RPT"
  101.     InputStr "Path & Filename to export to", STRING002, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  102.     STRING002 = Strip(Upper(STRING002), " ")
  103.     If (STRING002 == "") Goto LABEL039
  104.     InputStr "Path & Filename for report file", STRING008, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  105.     STRING008 = Strip(Upper(STRING008), " ")
  106.     If (STRING008 == "") Goto LABEL039
  107.     STRING001 = Trim(Upper(STRING001), " ")
  108.     If (Exist(STRING001)) Goto LABEL002
  109.     PrintLn 
  110.     PrintLn "@X0C" + STRING001 + " does not exist!"
  111.     PrintLn 
  112.     Delay 4
  113.     Goto LABEL039
  114.     :LABEL002
  115.     INTEGER001 = FileInf(STRING001, 4)
  116.     INTEGER002 = (INTEGER001 - 37) / 59
  117.     If (Exist(STRING002)) Then
  118.         FAppend 1, STRING002, 1, 2
  119.         If (Ferr(1)) Then
  120.             BOOLEAN001 = 1
  121.         Else
  122.             BOOLEAN001 = 0
  123.         Endif
  124.         If (BOOLEAN001) Then
  125.             PrintLn 
  126.             PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  127.             FClose 1
  128.             Return
  129.         Endif
  130.     Else
  131.         FCreate 1, STRING002, 1, 2
  132.         If (Ferr(1)) Then
  133.             BOOLEAN001 = 1
  134.         Else
  135.             BOOLEAN001 = 0
  136.         Endif
  137.         If (BOOLEAN001) Then
  138.             PrintLn 
  139.             PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  140.             FClose 1
  141.             Return
  142.         Endif
  143.     Endif
  144.     FOpen 2, STRING001, 0, 0
  145.     If (Ferr(2)) Then
  146.         BOOLEAN001 = 1
  147.     Else
  148.         BOOLEAN001 = 0
  149.     Endif
  150.     If (BOOLEAN001) Then
  151.         PrintLn 
  152.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  153.         FClose 1
  154.         FClose 2
  155.         Return
  156.     Endif
  157.     If (Exist(STRING008)) Then
  158.         FAppend 3, STRING008, 1, 2
  159.         If (Ferr(3)) Then
  160.             BOOLEAN001 = 1
  161.         Else
  162.             BOOLEAN001 = 0
  163.         Endif
  164.         If (BOOLEAN001) Then
  165.             PrintLn 
  166.             PrintLn "@X0CSorry, the @X0F" + STRING008 + " @X0Cfile is currently inaccessible..."
  167.             FClose 1
  168.             FClose 2
  169.             FClose 3
  170.             Return
  171.         Endif
  172.     Else
  173.         FCreate 3, STRING008, 1, 2
  174.         If (Ferr(3)) Then
  175.             BOOLEAN001 = 1
  176.         Else
  177.             BOOLEAN001 = 0
  178.         Endif
  179.         If (BOOLEAN001) Then
  180.             PrintLn 
  181.             PrintLn "@X0CSorry, the @X0F" + STRING008 + " @X0Cfile is currently inaccessible..."
  182.             FClose 1
  183.             FClose 2
  184.             FClose 3
  185.             Return
  186.         Endif
  187.         FPutLn 3, "EDSBack v1.15 Already Used # Exportation Report"
  188.         FPutLn 3, "Report generated at " + String(Time()) + " on " + String(Date())
  189.         FPutLn 3, "----------------------------------------------------------------------"
  190.         FPutLn 3
  191.     Endif
  192.     INTEGER003 = 1
  193.     Cls
  194.     PrintLn 
  195.     PrintLn Space(15) + "@X0A(@X0FAlready Used # File Exportation Procedure@X0A)"
  196.     PrintLn 
  197.     PrintLn 
  198.     PrintLn "@X0BFrom   :@X0E " + STRING001
  199.     PrintLn "@X0BTo     :@X0E " + STRING002
  200.     PrintLn "@X0BReport :@X0E " + STRING008
  201.     PrintLn 
  202.     Print "@X0CPlease wait, now exporting...@X0F    "
  203.     FSeek 2, 37, 0
  204.     While (INTEGER003 <= INTEGER002) Do
  205.         FSeek 2, 1, 1
  206.         FRead 2, TBOOLEAN003(1), 1
  207.         FRead 2, STRING009, 3
  208.         STRING009 = Strip(STRING009, " ")
  209.         FRead 2, STRING011, 4
  210.         STRING011 = Strip(STRING011, " ")
  211.         FRead 2, STRING010, 8
  212.         STRING010 = Strip(STRING010, " ")
  213.         FSeek 2, 42, 1
  214.         If (TBOOLEAN003(1)) Then
  215.             FPutLn 3, "--------------------------------------------------------------------------"
  216.             FPutLn 3, "Record #" + String(INTEGER003) + " not exported because it is an international number..."
  217.             FPutLn 3, "CountryCode = " + STRING009
  218.             FPutLn 3, "CityCode    = " + STRING011
  219.             FPutLn 3, "Number      = " + STRING010
  220.         Else
  221.             FPutLn 1, STRING009 + "-" + Left(STRING011 + Space(3), 3) + "-" + Left(STRING010 + Space(4), 4)
  222.         Endif
  223.         Gosub LABEL037
  224.         Inc INTEGER003
  225.     EndWhile
  226.     FClose 1
  227.     FClose 2
  228.     FClose 3
  229.     PrintLn 
  230.     PrintLn "@X0BExporting process completed!"
  231.     Log "Already Used # file exported...", 0
  232.     Delay 4
  233.     Return
  234.     :LABEL003
  235.     Gosub LABEL033
  236.     PrintLn 
  237.     STRING008 = ""
  238.     STRING002 = ""
  239.     InputStr "Path & Filename of file to import", STRING002, 15, 45, Mask_Path() + Mask_File(), 2 + 4
  240.     STRING002 = Strip(Upper(STRING002), " ")
  241.     If (STRING002 == "") Goto LABEL039
  242.     STRING001 = Upper(STRING001)
  243.     Newline
  244.     InputStr "Name to place in file for all imported numbers", STRING008, 15, 25, Mask_Ascii(), 2 + 4
  245.     Newline
  246.     STRING008 = Trim(Upper(STRING008), " ")
  247.     PrintLn 
  248.     If (Exist(STRING002)) Goto LABEL004
  249.     PrintLn "@X0C" + STRING002 + " does not exist!"
  250.     PrintLn 
  251.     Delay 9
  252.     Return
  253.     :LABEL004
  254.     If (Exist(STRING001)) Then
  255.         FOpen 1, STRING001, 1, 2
  256.         If (Ferr(1)) Then
  257.             BOOLEAN001 = 1
  258.         Else
  259.             BOOLEAN001 = 0
  260.         Endif
  261.         If (BOOLEAN001) Then
  262.             PrintLn 
  263.             PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  264.             FClose 1
  265.             Return
  266.         Endif
  267.         FSeek 1, 0, 2
  268.     Else
  269.         FCreate 1, STRING001, 1, 2
  270.         If (Ferr(1)) Then
  271.             BOOLEAN001 = 1
  272.         Else
  273.             BOOLEAN001 = 0
  274.         Endif
  275.         If (BOOLEAN001) Then
  276.             PrintLn 
  277.             PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  278.             FClose 1
  279.             Return
  280.         Endif
  281.         FWrite 1, " EDSBack v1.15 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  282.     Endif
  283.     FOpen 2, STRING002, 0, 0
  284.     If (Ferr(2)) Then
  285.         BOOLEAN001 = 1
  286.     Else
  287.         BOOLEAN001 = 0
  288.     Endif
  289.     If (BOOLEAN001) Then
  290.         PrintLn 
  291.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  292.         FClose 1
  293.         FClose 2
  294.         Return
  295.     Endif
  296.     Cls
  297.     PrintLn 
  298.     PrintLn Space(15) + "@X0A(@X0FAlready Used # Trash File Importation Procedure@X0A)"
  299.     PrintLn 
  300.     PrintLn "@X0EFrom         : @X0F" + STRING002
  301.     PrintLn "@X0ETo           : @X0F" + STRING001
  302.     PrintLn "@X0EDefault Name : @X0F" + STRING008
  303.     PrintLn 
  304.     PrintLn 
  305.     Print "@X0CImporting record #@X0F1"
  306.     INTEGER003 = 1
  307.     INTEGER005 = 1
  308.     :LABEL005
  309.     If (Ferr(2)) Goto LABEL006
  310.     FGet 2, STRING005
  311.     Backup Len(String(INTEGER005))
  312.     Print String(INTEGER003)
  313.     STRING005 = Strip(Strip(Strip(Strip(Strip(STRING005, " "), ")"), "("), "-"), ".")
  314.     If (STRING005 <> "") Then
  315.         FWrite 1, 0, 1
  316.         FWrite 1, 0, 1
  317.         FWrite 1, Mid(STRING005, 1, 3), 3
  318.         FWrite 1, Mid(STRING005, 4, 3), 4
  319.         FWrite 1, Mid(STRING005, 7, 4), 8
  320.         FWrite 1, STRING008, 25
  321.         FWrite 1, Date(), 2
  322.         FWrite 1, Time(), 4
  323.         FWrite 1, Space(11), 11
  324.         INTEGER005 = INTEGER003
  325.         Inc INTEGER003
  326.     Endif
  327.     Goto LABEL005
  328.     :LABEL006
  329.     FClose 1
  330.     FClose 2
  331.     PrintLn 
  332.     PrintLn "@X0B" + STRING002 + " successfully imported..."
  333.     Log STRING002 + " imported into Used # file...", 0
  334.     PrintLn 
  335.     Gosub LABEL031
  336.     Return
  337.     :LABEL007
  338.     Gosub LABEL033
  339.     BOOLEAN002 = 0
  340.     BYTE002 = 20
  341.     BYTE003 = 110
  342.     STRING007 = Trim(ReadLine(PCBDat(), 29), " ")
  343.     :LABEL008
  344.     If (BOOLEAN002) Goto LABEL009
  345.     PrintLn 
  346.     PrintLn "@X0FEDSUtil Trash File Building Facility"
  347.     PrintLn "@X0CNOTE : NUMBERS MUST HAVE 10 CHARACTERS TO BE PROCESSED!"
  348.     PrintLn "       INTERNATIONAL NUMBERS OR INCOMPLETE NUMBERS WILL NOT BE PROCESSED..."
  349.     PrintLn "       See BUILD.RPT after building process for records"
  350.     PrintLn "       to manually update."
  351.     PrintLn 
  352.     PrintLn "          @X0F(@X09L@X0F)@X0Bowest sec. level to process  : @X0E" + String(BYTE002)
  353.     PrintLn "          @X0F(@X09H@X0F)@X0Bighest sec. level to process : @X0E" + String(BYTE003)
  354.     PrintLn "          @X0F(@X09U@X0F)@X0Bsers file path & filename    : @X0E(See Below)"
  355.     PrintLn "          " + STRING007
  356.     PrintLn 
  357.     PrintLn "          @X0F(@X09B@X0F)@X0Build trash file"
  358.     PrintLn "          @X0F(@X09Q@X0F)@X0Buit to EDSUtil main"
  359.     PrintLn 
  360.     STRING004 = ""
  361.     InputStr "Trash File Building Facility Command", STRING004, 10, 1, "LlHhBbQqUu", 2 + 4
  362.     Newline
  363.     STRING004 = Upper(STRING004)
  364.     Select Case (STRING004)
  365.         Case "Q"
  366.             Goto LABEL039
  367.         Case "B"
  368.             BOOLEAN002 = 1
  369.         Case "L"
  370.             InputInt "Lowest Security level of users (phone numbers) to place in trash file", BYTE002, 10
  371.         Case "H"
  372.             InputInt "Highest Security level of users (phone numbers) to place in trash file", BYTE003, 10
  373.         Case "U"
  374.             PrintLn "@X0AEnter path & filename to your USERS file below..."
  375.             InputStr "", STRING007, 12, 75, Mask_Path() + Mask_File(), 2 + 4
  376.             Newline
  377.     End Select
  378.     Goto LABEL008
  379.     :LABEL009
  380.     Cls
  381.     PrintLn 
  382.     PrintLn Space(11) + "@X0F(@X0AEDSBack Already Used Number Trash File Building Process@X0F)"
  383.     PrintLn 
  384.     PrintLn 
  385.     INTEGER001 = FileInf(STRING007, 4)
  386.     INTEGER002 = INTEGER001 / 400
  387.     INTEGER003 = 1
  388.     PrintLn "@X0ABacking up trash file..."
  389.     If (Exist(PPEPath() + "TRASH.BAK")) Delete PPEPath() + "TRASH.BAK"
  390.     If (BOOLEAN006) Goto LABEL010
  391.     If (Exist(STRING001)) Rename STRING001, PPEPath() + "TRASH.BAK"
  392.     Goto LABEL011
  393.     :LABEL010
  394.     If (Exist(STRING001)) Copy STRING001, PPEPath() + "TRASH.BAK"
  395.     :LABEL011
  396.     PrintLn "@X0AOpening files..."
  397.     KbdChkOff
  398.     FCreate 2, PPEPath() + "BUILD.RPT", 1, 2
  399.     If (Ferr(2)) Then
  400.         BOOLEAN001 = 1
  401.     Else
  402.         BOOLEAN001 = 0
  403.     Endif
  404.     If (BOOLEAN001) Then
  405.         PrintLn 
  406.         PrintLn "@X0CSorry, the @X0FBUILD.RPT @X0Cfile is currently inaccessible..."
  407.         PrintLn "@X0AA report will not be generated...  @X0CResuming..."
  408.         FClose 2
  409.     Else
  410.         FPutLn 2, "EDSBack v1.15 Trash File Building Report"
  411.         FPutLn 2, "Generated on file " + STRING007 + " on " + String(Date()) + " at " + String(Time())
  412.         FPutLn 2, "================================================================================"
  413.         FPutLn 2
  414.     Endif
  415.     BOOLEAN001 = 0
  416.     If (BOOLEAN006) Goto LABEL012
  417.     FCreate 1, STRING001, 1, 2
  418.     If (Ferr(1)) Then
  419.         BOOLEAN001 = 1
  420.     Else
  421.         BOOLEAN001 = 0
  422.     Endif
  423.     If (BOOLEAN001) Then
  424.         PrintLn 
  425.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  426.         FClose 1
  427.         Return
  428.     Endif
  429.     FWrite 1, " EDSBack v1.15 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  430.     Goto LABEL013
  431.     :LABEL012
  432.     If (Exist(STRING001)) Then
  433.         FOpen 1, STRING001, 1, 2
  434.         If (Ferr(1)) Then
  435.             BOOLEAN001 = 1
  436.         Else
  437.             BOOLEAN001 = 0
  438.         Endif
  439.         If (BOOLEAN001) Then
  440.             PrintLn 
  441.             PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  442.             FClose 1
  443.             Return
  444.         Endif
  445.         FSeek 1, 0, 2
  446.     Else
  447.         FCreate 1, STRING001, 1, 2
  448.         If (Ferr(1)) Then
  449.             BOOLEAN001 = 1
  450.         Else
  451.             BOOLEAN001 = 0
  452.         Endif
  453.         If (BOOLEAN001) Then
  454.             PrintLn 
  455.             PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  456.             FClose 1
  457.             Return
  458.         Endif
  459.         FWrite 1, " EDSBack v1.15 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  460.     Endif
  461.     :LABEL013
  462.     PrintLn 
  463.     PrintLn "@X0AReading user records & building trashfile..."
  464.     PrintLn "@X0F     File Size = " + String(INTEGER001) + " bytes  Number of Records = " + String(INTEGER002)
  465.     PrintLn 
  466.     If (GrafMode() <> "N") Then
  467.         PrintLn 
  468.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  469.         BYTE001 = GetY()
  470.     Else
  471.         Print "Fetching record #1 of " + String(INTEGER002)
  472.     Endif
  473.     INTEGER001 = 1
  474.     While (INTEGER003 <= INTEGER002) Do
  475.         GetAltUser INTEGER003
  476.         If ((U_Sec >= BYTE002) && (U_Sec <= BYTE003)) Then
  477.             BOOLEAN005 = 1
  478.         Else
  479.             BOOLEAN005 = 0
  480.         Endif
  481.         If (BOOLEAN005) Then
  482.             STRING008 = U_BDPhone
  483.             STRING008 = Strip(Strip(Strip(Strip(Strip(Strip(STRING008, " "), "-"), ")"), "("), "."), ",")
  484.             FPutLn 2, "--------------------------------------------------"
  485.             FPutLn 2, U_Name() + "   Record #" + String(INTEGER003)
  486.             If (Len(STRING008) == 10) Then
  487.                 STRING009 = Mid(STRING008, 1, 3)
  488.                 STRING011 = Mid(STRING008, 4, 3)
  489.                 STRING010 = Mid(STRING008, 7, 4)
  490.                 FWrite 1, 0, 1
  491.                 FWrite 1, 0, 1
  492.                 FWrite 1, STRING009, 3
  493.                 FWrite 1, STRING011, 4
  494.                 FWrite 1, STRING010, 8
  495.                 FWrite 1, U_Name(), 25
  496.                 FWrite 1, Date(), 2
  497.                 FWrite 1, Time(), 4
  498.                 FWrite 1, Space(11), 11
  499.                 FPutLn 2, "USA DATA number detected...  Added to trash file..."
  500.                 Goto LABEL014
  501.             Endif
  502.             FPutLn 2, "Invalid DATA number format...  Please add manually..."
  503.             FPutLn 2, "DATA # = " + U_BDPhone
  504.             :LABEL014
  505.             STRING008 = U_HVPhone
  506.             STRING008 = Strip(Strip(Strip(Strip(Strip(Strip(STRING008, " "), "-"), ")"), "("), "."), ",")
  507.             If (Len(STRING008) == 10) Then
  508.                 STRING009 = Mid(STRING008, 1, 3)
  509.                 STRING011 = Mid(STRING008, 4, 3)
  510.                 STRING010 = Mid(STRING008, 7, 4)
  511.                 FWrite 1, 0, 1
  512.                 FWrite 1, 0, 1
  513.                 FWrite 1, STRING009, 3
  514.                 FWrite 1, STRING011, 4
  515.                 FWrite 1, STRING010, 8
  516.                 FWrite 1, U_Name(), 25
  517.                 FWrite 1, Date(), 2
  518.                 FWrite 1, Time(), 4
  519.                 FWrite 1, Space(11), 11
  520.                 FPutLn 2, "USA HOME number detected...  Added to trash file..."
  521.                 Goto LABEL015
  522.             Endif
  523.             FPutLn 2, "Invalid HOME number format...  Please add manually..."
  524.             FPutLn 2, "HOME # = " + U_HVPhone
  525.         Endif
  526.         :LABEL015
  527.         If (GrafMode() <> "N") Then
  528.             Gosub LABEL036
  529.         Else
  530.             Backup Len(String(INTEGER002) + " of " + String(INTEGER001))
  531.             Print String(INTEGER003) + " of " + String(INTEGER002)
  532.         Endif
  533.         INTEGER001 = INTEGER003
  534.         Inc INTEGER003
  535.     EndWhile
  536.     PrintLn 
  537.     PrintLn "@X0FTrash file building finished!  Closing files..."
  538.     FClose 1
  539.     FClose 2
  540.     Gosub LABEL031
  541.     Delay 4
  542.     KbdChkOn
  543.     Return
  544.     :LABEL016
  545.     Gosub LABEL033
  546.     If (Exist(STRING001)) Goto LABEL017
  547.     PrintLn 
  548.     PrintLn "@X0C" + STRING001 + " does not exist!"
  549.     Delay 9
  550.     Return
  551.     :LABEL017
  552.     INTEGER001 = FileInf(STRING001, 4)
  553.     INTEGER002 = (INTEGER001 - 37) / 59
  554.     If (INTEGER002 <= 1) Then
  555.         PrintLn 
  556.         PrintLn "@X0CTHERE MUST BE AT LEAST ONE RECORD PRESENT IN THE TRASH CAN FILE!"
  557.         PrintLn 
  558.         Delay 18
  559.         Return
  560.     Endif
  561.     KbdChkOff
  562.     Rename STRING001, PPEPath() + String(PcbNode()) + "ts.$$$"
  563.     FCreate 1, STRING001, 1, 2
  564.     If (Ferr(1)) Then
  565.         BOOLEAN001 = 1
  566.     Else
  567.         BOOLEAN001 = 0
  568.     Endif
  569.     If (BOOLEAN001) Then
  570.         PrintLn 
  571.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  572.         FClose 1
  573.         Return
  574.     Endif
  575.     BOOLEAN001 = 1
  576.     FOpen 2, PPEPath() + String(PcbNode()) + "ts.$$$", 0, 3
  577.     If (Ferr(2)) Then
  578.         BOOLEAN001 = 1
  579.     Else
  580.         BOOLEAN001 = 0
  581.     Endif
  582.     If (BOOLEAN001) Then
  583.         PrintLn 
  584.         PrintLn "@X0CSorry, the @X0F" + String(PcbNode()) + "ts.$$$ @X0Cfile is currently inaccessible..."
  585.         FClose 2
  586.         FClose 1
  587.         PrintLn 
  588.         PrintLn "@X0ADeleting & renaming temporary files..."
  589.         Delete STRING001
  590.         Rename PPEPath() + String(PcbNode()) + "ts.$$$", STRING001
  591.         Return
  592.     Endif
  593.     Cls
  594.     PrintLn 
  595.     PrintLn Space(11) + "@X0F(@X0AEDSBack Already Used Number Trash File Packing Process@X0F)"
  596.     BOOLEAN002 = 0
  597.     FSeek 1, 0, 0
  598.     FWrite 1, " EDSBack v1.15 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  599.     PrintLn 
  600.     PrintLn 
  601.     PrintLn "@X0F   File Size = " + String(INTEGER001) + " bytes   Number of Records = " + String(INTEGER002)
  602.     PrintLn "@X0FPacking trash can file..."
  603.     If (GrafMode() <> "N") Then
  604.         PrintLn 
  605.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  606.         BYTE001 = GetY()
  607.     Endif
  608.     INTEGER003 = 1
  609.     FSeek 2, 37, 0
  610.     While (INTEGER003 <= INTEGER002) Do
  611.         BOOLEAN002 = 0
  612.         TBOOLEAN003(0) = 0
  613.         TBOOLEAN003(1) = 0
  614.         STRING009 = ""
  615.         STRING011 = ""
  616.         STRING010 = ""
  617.         STRING002 = ""
  618.         DATE001 = 0
  619.         TIME001 = 0
  620.         FRead 2, TBOOLEAN003(0), 1
  621.         If (TBOOLEAN003(0)) Then
  622.             BOOLEAN002 = 1
  623.         Else
  624.             BOOLEAN002 = 0
  625.         Endif
  626.         If (BOOLEAN002) Goto LABEL018
  627.         FWrite 1, TBOOLEAN003(0), 1
  628.         FRead 2, TBOOLEAN003(1), 1
  629.         FWrite 1, TBOOLEAN003(1), 1
  630.         FRead 2, STRING009, 3
  631.         FWrite 1, STRING009, 3
  632.         FRead 2, STRING011, 4
  633.         FWrite 1, STRING011, 4
  634.         FRead 2, STRING010, 8
  635.         FWrite 1, STRING010, 8
  636.         FRead 2, STRING002, 25
  637.         FWrite 1, STRING002, 25
  638.         FRead 2, DATE001, 2
  639.         FWrite 1, DATE001, 2
  640.         FRead 2, TIME001, 4
  641.         FWrite 1, TIME001, 4
  642.         FSeek 2, 11, 1
  643.         FWrite 1, Space(11), 11
  644.         Goto LABEL019
  645.         :LABEL018
  646.         FSeek 2, 58, 1
  647.         :LABEL019
  648.         If (GrafMode() <> "N") Gosub LABEL036
  649.         Inc INTEGER003
  650.     EndWhile
  651.     Color 7
  652.     FClose 1
  653.     FClose 2
  654.     PrintLn 
  655.     PrintLn 
  656.     PrintLn "@X0BDeleting temporary files..."
  657.     Delete PPEPath() + String(PcbNode()) + "ts.$$$"
  658.     PrintLn "@X0EChecking files..."
  659.     INTEGER001 = FileInf(STRING001, 4)
  660.     INTEGER002 = (INTEGER001 - 37) / 59
  661.     If (INTEGER002 < 1) Then
  662.         PrintLn 
  663.         PrintLn "@X0C0 byte file!  Recreating with a dummy record..."
  664.         FCreate 1, STRING001, 1, 2
  665.         FWrite 1, " EDSBack v1.15 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  666.         FWrite 1, 0, 1
  667.         FWrite 1, 0, 1
  668.         FWrite 1, "000", 3
  669.         FWrite 1, "000", 3
  670.         FWrite 1, "0000", 4
  671.         FWrite 1, "JOHN DOE", 25
  672.         FWrite 1, Date(), 2
  673.         FWrite 1, Time(), 4
  674.         FWrite 1, Space(11), 11
  675.         FClose 1
  676.         PrintLn "@X0ANew trash file successfully created..."
  677.     Endif
  678.     Gosub LABEL031
  679.     PrintLn "@X0FTrash can file successfully packed!"
  680.     Log "EDSBack Trash can file successfully packed!", 0
  681.     KbdChkOn
  682.     Return
  683.     :LABEL020
  684.     BOOLEAN002 = 0
  685.     BOOLEAN004 = 1
  686.     Gosub LABEL033
  687.     If (Exist(PPEPath() + "TRASH.IDX")) Goto LABEL021
  688.     Cls
  689.     PrintLn 
  690.     PrintLn Space(29) + "@X0F(@X0ABuilding Index File@X0F)"
  691.     PrintLn 
  692.     Gosub LABEL031
  693.     :LABEL021
  694.     INTEGER001 = FileInf(STRING001, 4)
  695.     If (Exist(STRING001)) Goto LABEL022
  696.     PrintLn 
  697.     PrintLn "@X0CCreating sample " + STRING001
  698.     BOOLEAN001 = 1
  699.     FCreate 1, STRING001, 2, 2
  700.     If (Ferr(1)) Then
  701.         BOOLEAN001 = 1
  702.     Else
  703.         BOOLEAN001 = 0
  704.     Endif
  705.     If (BOOLEAN001) Then
  706.         PrintLn 
  707.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " X0Cfile is currently inaccessible..."
  708.         FClose 1
  709.         Return
  710.     Endif
  711.     FSeek 1, 0, 0
  712.     FWrite 1, " EDSBack v1.15 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  713.     FWrite 1, 0, 1
  714.     FWrite 1, 0, 1
  715.     FWrite 1, "000", 3
  716.     FWrite 1, "000", 4
  717.     FWrite 1, "0000", 8
  718.     FWrite 1, "JOHN DOE", 25
  719.     FWrite 1, Date(), 2
  720.     FWrite 1, Time(), 4
  721.     FWrite 1, Space(11), 11
  722.     INTEGER001 = 96
  723.     Goto LABEL023
  724.     :LABEL022
  725.     BOOLEAN001 = 1
  726.     FOpen 1, STRING001, 2, 2
  727.     If (Ferr(1)) Then
  728.         BOOLEAN001 = 1
  729.     Else
  730.         BOOLEAN001 = 0
  731.     Endif
  732.     If (BOOLEAN001) Then
  733.         PrintLn 
  734.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " X0Cfile is currently inaccessible..."
  735.         FClose 1
  736.         Return
  737.     Endif
  738.     :LABEL023
  739.     FOpen 2, PPEPath() + "TRASH.IDX", 1, 2
  740.     If (Ferr(2)) Then
  741.         BOOLEAN001 = 1
  742.     Else
  743.         BOOLEAN001 = 0
  744.     Endif
  745.     If (BOOLEAN001) Then
  746.         PrintLn 
  747.         PrintLn "@X0CSorry, the @X0F" + PPEPath() + "TRASH.IDX @X0Cfile is currently inaccessible..."
  748.         FClose 1
  749.         FClose 2
  750.         PrintLn 
  751.         Return
  752.     Endif
  753.     INTEGER003 = 1
  754.     STRING003 = ""
  755.     :LABEL024
  756.     If (BOOLEAN002) Goto LABEL026
  757.     If (BOOLEAN004) Then
  758.         FSeek 1, 37 + INTEGER003 * 59 - 59, 0
  759.         FRead 1, TBOOLEAN003(0), 1
  760.         FRead 1, TBOOLEAN003(1), 1
  761.         FRead 1, STRING009, 3
  762.         FRead 1, STRING011, 4
  763.         FRead 1, STRING010, 8
  764.         STRING009 = Strip(STRING009, " ")
  765.         STRING011 = Strip(STRING011, " ")
  766.         STRING010 = Strip(STRING010, " ")
  767.         FRead 1, STRING002, 25
  768.         FRead 1, DATE001, 2
  769.         FRead 1, TIME001, 4
  770.         BOOLEAN004 = 0
  771.     Endif
  772.     PrintLn 
  773.     INTEGER002 = (INTEGER001 - 37) / 59
  774.     PrintLn "    @X0BRecord #@X0E" + String(INTEGER003) + "@X0B of @X0E" + String(INTEGER002)
  775.     Print "    @X0ADeleted : @X0C"
  776.     If (TBOOLEAN003(0)) Then
  777.         PrintLn "Yes"
  778.     Else
  779.         PrintLn "No "
  780.     Endif
  781.     PrintLn 
  782.     PrintLn "    @X0F(@X09N@X0F)@X0Fame : @X0C" + STRING002
  783.     Print "    @X0F(@X09#@X0F)@X0F called : @X0C"
  784.     If (TBOOLEAN003(1)) Then
  785.         Print STRING009 + "-" + STRING011 + "-" + STRING010
  786.     Else
  787.         Print STRING009 + "-" + Mid(STRING011, 1, 3) + "-" + Mid(STRING010, 1, 4)
  788.     Endif
  789.     Print "    @X0F(@X09I@X0F)@X0Fnternational : @X0C"
  790.     If (TBOOLEAN003(1)) Then
  791.         PrintLn "Yes"
  792.     Else
  793.         PrintLn "No "
  794.     Endif
  795.     PrintLn "    @X0F(@X09D@X0F)@X0Fate : @X0C" + String(DATE001)
  796.     PrintLn "    @X0F(@X09T@X0F)@X0Fime : @X0C" + String(TIME001)
  797.     PrintLn 
  798.     PrintLn "    @X0F(@X09+@X0F) @X0BAdvance 1 record  @X0F(@X09-@X0F) @X0BRetard 1 record"
  799.     PrintLn "    @X0F(@X09J@X0F)@X0Bump to record      @X0F(@X09A@X0F)@X0Bdd a record"
  800.     PrintLn "    @X0F(@X09E@X0F)@X0Brase toggle        @X0F(@X09Q@X0F)@X0Buit"
  801.     PrintLn "    @X0F(@X09S@X0F)@X0Bearch for text"
  802.     PrintLn 
  803.     InputStr "(H)elp, Enter command", STRING003, 10, 1, "SsNn#IiTtDdJjAaEeQq+-Hh", 2 + 4
  804.     Newline
  805.     STRING003 = Upper(STRING003)
  806.     Select Case (STRING003)
  807.         Case "Q"
  808.             FClose 1
  809.             BOOLEAN004 = 0
  810.             BOOLEAN002 = 1
  811.         Case "H"
  812.             Print "@PON@"
  813.             DispFile PPEPath() + "EDSNE", 1 + 4
  814.             Print "@POFF@"
  815.             Cls
  816.             BOOLEAN004 = 0
  817.             BOOLEAN002 = 0
  818.         Case "S"
  819.             Gosub LABEL027
  820.             BOOLEAN002 = 0
  821.             BOOLEAN004 = 1
  822.         Case "+"
  823.             If (INTEGER003 >= INTEGER002) Then
  824.                 INTEGER003 = 1
  825.             Else
  826.                 Inc INTEGER003
  827.             Endif
  828.             BOOLEAN002 = 0
  829.             BOOLEAN004 = 1
  830.         Case "-"
  831.             If (INTEGER003 <= 1) Then
  832.                 INTEGER003 = INTEGER002
  833.             Else
  834.                 Dec INTEGER003
  835.             Endif
  836.             BOOLEAN002 = 0
  837.             BOOLEAN004 = 1
  838.         Case "J"
  839.             INTEGER005 = INTEGER002
  840.             InputInt "Enter record # to jump to", INTEGER005, 10
  841.             If (INTEGER005 > INTEGER002) Then
  842.                 INTEGER003 = INTEGER002
  843.             ElseIf (INTEGER005 < 1) Then
  844.                 INTEGER003 = 1
  845.             Else
  846.                 INTEGER003 = INTEGER005
  847.             Endif
  848.             BOOLEAN002 = 0
  849.             BOOLEAN004 = 1
  850.         Case "E"
  851.             FSeek 1, 37 + INTEGER003 * 59 - 59, 0
  852.             If (TBOOLEAN003(0)) Then
  853.                 FWrite 1, 0, 1
  854.             Else
  855.                 FWrite 1, 1, 1
  856.             Endif
  857.             BOOLEAN002 = 0
  858.             BOOLEAN004 = 1
  859.         Case "A"
  860.             STRING002 = ""
  861.             InputStr "Enter name", STRING002, 10, 25, Mask_Ascii(), 2 + 4
  862.             STRING002 = Upper(STRING002)
  863.             Newline
  864.             DATE001 = Date()
  865.             InputDate "Enter date", DATE001, 10
  866.             Newline
  867.             TIME001 = Time()
  868.             InputTime "Enter time", TIME001, 10
  869.             Newline
  870.             STRING005 = NoChar()
  871.             InputYN "International number", STRING005, 10
  872.             Newline
  873.             If (Upper(STRING005) == Upper(YesChar())) Then
  874.                 TBOOLEAN003(1) = 1
  875.             Else
  876.                 TBOOLEAN003(1) = 0
  877.             Endif
  878.             If (TBOOLEAN003(1)) Then
  879.                 InputStr "Country Code", STRING009, 9, 3, Mask_Num(), 2 + 4
  880.                 Newline
  881.                 InputStr "City Code", STRING011, 9, 4, Mask_Num(), 2 + 4
  882.                 Newline
  883.                 InputStr "Number", STRING010, 9, 8, Mask_Num() + "-,() ", 2 + 4
  884.             Else
  885.                 InputStr "Area Code", STRING009, 9, 3, Mask_Num(), 2 + 4
  886.                 Newline
  887.                 InputStr "Prefix", STRING011, 9, 3, Mask_Num(), 2 + 4
  888.                 Newline
  889.                 InputStr "Number", STRING010, 9, 4, Mask_Num(), 2 + 4
  890.             Endif
  891.             STRING009 = Strip(STRING009, " ")
  892.             STRING011 = Strip(STRING011, " ")
  893.             STRING010 = Strip(Strip(Strip(Strip(Strip(STRING010, " "), "-"), ","), "("), ")")
  894.             Newline
  895.             STRING004 = YesChar()
  896.             InputYN STRING009 + "-" + STRING011 + "-" + STRING010 + "   Is this correct", STRING004, 12
  897.             If (Upper(STRING004) == Upper(YesChar())) Then
  898.                 FSeek 1, 0, 2
  899.                 FSeek 2, 0, 2
  900.                 FWrite 1, 0, 1
  901.                 FWrite 1, TBOOLEAN003(1), 1
  902.                 FWrite 1, STRING009, 3
  903.                 FWrite 1, STRING011, 4
  904.                 FWrite 1, STRING010, 8
  905.                 FWrite 1, STRING002, 25
  906.                 FWrite 1, DATE001, 2
  907.                 FWrite 1, TIME001, 4
  908.                 FWrite 1, Space(11), 11
  909.                 INTEGER004 = S2I(STRING009, 10) + S2I(STRING011, 10) + S2I(STRING010, 10)
  910.                 FWrite 2, INTEGER002 + 1, 4
  911.                 FWrite 2, INTEGER004, 4
  912.                 INTEGER002 = INTEGER002 + 1
  913.                 INTEGER001 = INTEGER001 + 59
  914.                 INTEGER003 = INTEGER002
  915.             Endif
  916.             BOOLEAN004 = 1
  917.             BOOLEAN002 = 0
  918.         Case "T"
  919.             InputTime "Enter new time", TIME001, 10
  920.             FSeek 1, 37 + INTEGER003 * 59 - 15, 0
  921.             FWrite 1, TIME001, 4
  922.             BOOLEAN002 = 0
  923.             BOOLEAN004 = 1
  924.         Case "D"
  925.             InputDate "Enter new date", DATE001, 10
  926.             FSeek 1, 37 + INTEGER003 * 59 - 17, 0
  927.             FWrite 1, DATE001, 2
  928.             BOOLEAN002 = 0
  929.             BOOLEAN004 = 1
  930.         Case "#"
  931.             If (TBOOLEAN003(1)) Then
  932.                 InputStr "Country Code", STRING009, 9, 3, Mask_Num(), 2 + 4
  933.                 Newline
  934.                 InputStr "City Code", STRING011, 9, 4, Mask_Num(), 2 + 4
  935.                 Newline
  936.                 InputStr "Number", STRING010, 9, 8, Mask_Num() + "-,() ", 2 + 4
  937.             Else
  938.                 InputStr "Area Code", STRING009, 9, 3, Mask_Num(), 2 + 4
  939.                 Newline
  940.                 InputStr "Prefix", STRING011, 9, 3, Mask_Num(), 2 + 4
  941.                 Newline
  942.                 InputStr "Number", STRING010, 9, 4, Mask_Num(), 2 + 4
  943.             Endif
  944.             STRING009 = Strip(STRING009, " ")
  945.             STRING011 = Strip(STRING011, " ")
  946.             STRING010 = Strip(Strip(Strip(Strip(Strip(STRING010, " "), "-"), ","), "("), ")")
  947.             FSeek 1, 37 + INTEGER003 * 59 - 57, 0
  948.             If (TBOOLEAN003(1)) Then
  949.                 FWrite 1, STRING009, 3
  950.                 FWrite 1, STRING011, 4
  951.                 FWrite 1, STRING010, 8
  952.             Else
  953.                 FWrite 1, STRING009, 3
  954.                 FWrite 1, STRING011 + Space(1), 4
  955.                 FWrite 1, STRING010 + Space(4), 8
  956.             Endif
  957.             INTEGER004 = S2I(STRING009, 10) + S2I(STRING011, 10) + S2I(STRING010, 10)
  958.             FSeek 2, 37 + INTEGER003 * 8 - 4, 0
  959.             FWrite 2, INTEGER004, 4
  960.             BOOLEAN002 = 0
  961.             BOOLEAN004 = 1
  962.         Case "N"
  963.             InputStr "Enter new name", STRING002, 10, 25, Mask_Ascii(), 2 + 4
  964.             STRING002 = Upper(STRING002)
  965.             FSeek 1, 37 + INTEGER003 * 59 - 42, 0
  966.             FWrite 1, STRING002, 25
  967.             BOOLEAN002 = 0
  968.             BOOLEAN004 = 1
  969.         Case "I"
  970.             STRING005 = NoChar()
  971.             InputYN "International Number", STRING005, 10
  972.             If (Upper(STRING005) == Upper(YesChar())) Then
  973.                 TBOOLEAN003(1) = 1
  974.                 Goto LABEL025
  975.             Endif
  976.             TBOOLEAN003(1) = 0
  977.             :LABEL025
  978.             FSeek 1, 37 + INTEGER003 * 59 - 58, 0
  979.             FWrite 1, TBOOLEAN003(1), 1
  980.             BOOLEAN002 = 0
  981.             BOOLEAN004 = 1
  982.             STRING005 = ""
  983.     End Select
  984.     Goto LABEL024
  985.     :LABEL026
  986.     FClose 1
  987.     FClose 2
  988.     PrintLn 
  989.     STRING005 = YesChar()
  990.     InputYN "Reindex Used # Trash File", STRING005, 12
  991.     Newline
  992.     If (Upper(STRING005) == YesChar()) Gosub LABEL031
  993.     Return
  994.     :LABEL027
  995.     PrintLn 
  996.     PrintLn "@X0FEnter text to search for below (Searching name field)"
  997.     InputText "", STRING006, 15, 75
  998.     Newline
  999.     PrintLn "@X0AInitializing search..."
  1000.     SearchInit STRING006, 0
  1001.     Print "@X0FSearching record #@X0B" + String(INTEGER003) + "@X0F of @X0B" + String(INTEGER002)
  1002.     INTEGER005 = INTEGER003
  1003.     INTEGER004 = INTEGER003
  1004.     FSeek 1, 37 + INTEGER003 * 59 - 59, 0
  1005.     While (INTEGER003 <= INTEGER002) Do
  1006.         FSeek 1, 17, 1
  1007.         FRead 1, STRING005, 25
  1008.         FSeek 1, 17, 1
  1009.         Backup Len(String(INTEGER002) + " of " + String(INTEGER004))
  1010.         Print "@X0B" + String(INTEGER003) + "@X0F of @X0B" + String(INTEGER002)
  1011.         SearchFind STRING005, BOOLEAN005
  1012.         If (BOOLEAN005 && (INTEGER003 <> INTEGER005)) Then
  1013.             PrintLn 
  1014.             PrintLn "@X0ASearch Criteria was found!  Now displaying..."
  1015.             SearchStop
  1016.             Return
  1017.         Else
  1018.             BOOLEAN005 = 0
  1019.         Endif
  1020.         INTEGER004 = INTEGER003
  1021.         Inc INTEGER003
  1022.     EndWhile
  1023.     If (BOOLEAN005) Goto LABEL028
  1024.     PrintLn 
  1025.     PrintLn "@X0CSearch criteria was not found...  Returning to record #" + String(INTEGER005)
  1026.     INTEGER003 = INTEGER005
  1027.     SearchStop
  1028.     :LABEL028
  1029.     Return
  1030.     :LABEL029
  1031.     Gosub LABEL033
  1032.     If (Exist(STRING001)) Goto LABEL030
  1033.     PrintLn 
  1034.     PrintLn "@X0C" + STRING001 + " does not exist!"
  1035.     Delay 9
  1036.     Return
  1037.     :LABEL030
  1038.     INTEGER001 = FileInf(STRING001, 4)
  1039.     INTEGER002 = (INTEGER001 - 37) / 59
  1040.     PrintLn 
  1041.     PrintLn "@X0ARenaming files..."
  1042.     Rename STRING001, PPEPath() + String(PcbNode()) + "tz.$$$"
  1043.     FCreate 1, STRING001, 1, 2
  1044.     If (Ferr(1)) Then
  1045.         BOOLEAN001 = 1
  1046.     Else
  1047.         BOOLEAN001 = 0
  1048.     Endif
  1049.     If (BOOLEAN001) Then
  1050.         PrintLn 
  1051.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  1052.         FClose 1
  1053.         Return
  1054.     Endif
  1055.     FOpen 2, PPEPath() + String(PcbNode()) + "tz.$$$", 0, 3
  1056.     If (Ferr(2)) Then
  1057.         BOOLEAN001 = 1
  1058.     Else
  1059.         BOOLEAN001 = 0
  1060.     Endif
  1061.     If (BOOLEAN001) Then
  1062.         PrintLn 
  1063.         PrintLn "@X0CSorry, the @X0F" + String(PcbNode()) + "tz.$$$ @X0Cfile is currently inaccessible..."
  1064.         FClose 2
  1065.         FClose 1
  1066.         PrintLn 
  1067.         PrintLn "@X0ADeleting & renaming temporary files..."
  1068.         Delete STRING001
  1069.         Rename PPEPath() + String(PcbNode()) + "tz.$$$", STRING001
  1070.         Return
  1071.     Endif
  1072.     PrintLn "@X07Checking version info..."
  1073.     STRING005 = ""
  1074.     FRead 2, STRING005, 20
  1075.     If (Mid(STRING005, 14, 1) == "7") Then
  1076.         PrintLn "@X0C"
  1077.         PrintLn "This trashfile is already up to the v1.07 specifications!"
  1078.         PrintLn "No need to convert this trashfile..  Already converted..."
  1079.         FClose 2
  1080.         FClose 1
  1081.         PrintLn 
  1082.         PrintLn "@X0ADeleting & renaming temporary files..."
  1083.         Delete STRING001
  1084.         Rename PPEPath() + String(PcbNode()) + "tz.$$$", STRING001
  1085.         Return
  1086.     Endif
  1087.     PrintLn "@X0F   FileSize = " + String(INTEGER001) + "  NumRecs = " + String(INTEGER002)
  1088.     BOOLEAN002 = 0
  1089.     FSeek 1, 0, 0
  1090.     FWrite 1, " EDSBack v1.15 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  1091.     PrintLn 
  1092.     PrintLn "@X0FConverting trash can file..."
  1093.     If (GrafMode() <> "N") Then
  1094.         PrintLn 
  1095.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  1096.         BYTE001 = GetY()
  1097.     Endif
  1098.     INTEGER003 = 1
  1099.     FSeek 2, 37, 0
  1100.     While (INTEGER003 <= INTEGER002) Do
  1101.         FRead 2, TBOOLEAN003(0), 1
  1102.         FRead 2, TBOOLEAN003(1), 1
  1103.         FRead 2, INTEGER005, 4
  1104.         FWrite 1, TBOOLEAN003(0), 1
  1105.         FWrite 1, TBOOLEAN003(1), 1
  1106.         FWrite 1, I2S(INTEGER005, 10), 3
  1107.         FRead 2, INTEGER005, 4
  1108.         FWrite 1, I2S(INTEGER005, 10), 4
  1109.         FRead 2, INTEGER005, 4
  1110.         FWrite 1, I2S(INTEGER005, 10), 8
  1111.         FRead 2, STRING002, 25
  1112.         FRead 2, DATE001, 2
  1113.         FRead 2, TIME001, 4
  1114.         FWrite 1, STRING002, 25
  1115.         FWrite 1, DATE001, 2
  1116.         FWrite 1, TIME001, 4
  1117.         FSeek 2, 14, 1
  1118.         FWrite 1, Space(11), 11
  1119.         Gosub LABEL036
  1120.         Inc INTEGER003
  1121.     EndWhile
  1122.     Color 7
  1123.     FClose 1
  1124.     FClose 2
  1125.     PrintLn 
  1126.     PrintLn 
  1127.     PrintLn "@X0BDeleting temporary files..."
  1128.     Delete PPEPath() + String(PcbNode()) + "tz.$$$"
  1129.     PrintLn "@X0FTrash can file successfully converted to 1.07 format!"
  1130.     Log "EDSBack Trash can file successfully converted!", 0
  1131.     Return
  1132.     :LABEL031
  1133.     Gosub LABEL033
  1134.     If (Exist(STRING001)) Goto LABEL032
  1135.     PrintLn 
  1136.     PrintLn "@X0CCreating sample " + STRING001
  1137.     FCreate 1, STRING001, 2, 2
  1138.     If (Ferr(1)) Then
  1139.         BOOLEAN001 = 1
  1140.     Else
  1141.         BOOLEAN001 = 0
  1142.     Endif
  1143.     If (BOOLEAN001) Then
  1144.         PrintLn 
  1145.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " X0Cfile is currently inaccessible..."
  1146.         FClose 1
  1147.         Return
  1148.     Endif
  1149.     FSeek 1, 0, 0
  1150.     FWrite 1, " EDSBack v1.15 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  1151.     FWrite 1, 0, 1
  1152.     FWrite 1, 0, 1
  1153.     FWrite 1, "000", 3
  1154.     FWrite 1, "000", 4
  1155.     FWrite 1, "0000", 8
  1156.     FWrite 1, "JOHN DOE", 25
  1157.     FWrite 1, Date(), 2
  1158.     FWrite 1, Time(), 4
  1159.     FWrite 1, Space(11), 11
  1160.     FClose 1
  1161.     :LABEL032
  1162.     INTEGER001 = FileInf(STRING001, 4)
  1163.     INTEGER002 = (INTEGER001 - 37) / 59
  1164.     FOpen 1, STRING001, 0, 0
  1165.     If (Ferr(1)) Then
  1166.         BOOLEAN001 = 1
  1167.     Else
  1168.         BOOLEAN001 = 0
  1169.     Endif
  1170.     If (BOOLEAN001) Then
  1171.         PrintLn 
  1172.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  1173.         FClose 1
  1174.         PrintLn 
  1175.         Return
  1176.     Endif
  1177.     FCreate 2, PPEPath() + "TRASH.IDX", 1, 3
  1178.     If (Ferr(2)) Then
  1179.         BOOLEAN001 = 1
  1180.     Else
  1181.         BOOLEAN001 = 0
  1182.     Endif
  1183.     If (BOOLEAN001) Then
  1184.         PrintLn 
  1185.         PrintLn "@X0CSorry, the @X0F" + PPEPath() + "TRASH.IDX @X0Cfile is currently inaccessible..."
  1186.         FClose 1
  1187.         FClose 2
  1188.         PrintLn 
  1189.         Return
  1190.     Endif
  1191.     FWrite 2, " EDSBack v1.15 Trash File Index " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  1192.     INTEGER003 = 1
  1193.     PrintLn 
  1194.     PrintLn "Generating index file..."
  1195.     If (GrafMode() <> "N") Then
  1196.         PrintLn 
  1197.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  1198.         BYTE001 = GetY()
  1199.     Endif
  1200.     FSeek 1, 37, 0
  1201.     While (INTEGER003 <= INTEGER002) Do
  1202.         FSeek 1, 2, 1
  1203.         FRead 1, STRING009, 3
  1204.         FRead 1, STRING011, 4
  1205.         FRead 1, STRING010, 8
  1206.         FSeek 1, 42, 1
  1207.         INTEGER004 = S2I(STRING009, 10) + S2I(STRING011, 10) + S2I(STRING010, 10)
  1208.         FWrite 2, INTEGER003, 4
  1209.         FWrite 2, INTEGER004, 4
  1210.         If (GrafMode() <> "N") Gosub LABEL036
  1211.         Inc INTEGER003
  1212.     EndWhile
  1213.     PrintLn 
  1214.     PrintLn "@X0AAlready used number file indexes successfully created!"
  1215.     Log "EDSBack used # trash index created...", 0
  1216.     FClose 1
  1217.     FClose 2
  1218.     Return
  1219.     :LABEL033
  1220.     STRING005 = PPEPath() + "EDSBACK.XXX"
  1221.     If (Exist(PPEPath() + "EDSBACK.XXX")) Then
  1222.         FOpen 2, STRING005, 0, 0
  1223.     Else
  1224.         PrintLn 
  1225.         PrintLn "@X0FPath & filename to EDSBack config file @X0E(Enter Below)"
  1226.         InputStr "", STRING005, 12, 75, Mask_Path() + Mask_File(), 2 + 4
  1227.         If (Exist(STRING005)) Goto LABEL034
  1228.         PrintLn 
  1229.         PrintLn "@X0C" + STRING005 + " DOES NOT EXIST!   @X0AReturning to EDSUtil Main..."
  1230.         Goto LABEL039
  1231.         Goto LABEL035
  1232.         :LABEL034
  1233.         FOpen 2, STRING005, 0, 0
  1234.     Endif
  1235.     :LABEL035
  1236.     If (Ferr(2)) Then
  1237.         BOOLEAN001 = 1
  1238.     Else
  1239.         BOOLEAN001 = 0
  1240.     Endif
  1241.     If (BOOLEAN001) Then
  1242.         PrintLn 
  1243.         PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  1244.         FClose 2
  1245.         Return
  1246.     Endif
  1247.     FSeek 2, 284, 0
  1248.     FRead 2, STRING001, 75
  1249.     FClose 2
  1250.     Return
  1251.     :LABEL036
  1252.     If (INTEGER003 == 1) BYTE006 = 0
  1253.     If ((INTEGER003 <> 0) && (INTEGER002 <> 0)) Then
  1254.         REAL002 = ToReal(INTEGER003) / ToReal(INTEGER002)
  1255.         REAL003 = FmtReal(ToReal(35) * REAL002, 1, 0)
  1256.         BYTE005 = ToByte(REAL003) - BYTE006
  1257.         If (BYTE005 <> BYTE006) Then
  1258.             Color 73
  1259.             AnsiPos 4 + BYTE006, BYTE001
  1260.             For BYTE006 = 1 To BYTE005
  1261.                 Print "▓"
  1262.             Next
  1263.             BYTE006 = ToByte(REAL003)
  1264.             REAL002 = FmtReal(REAL002 * 100, 1, 0)
  1265.             BYTE005 = (43 - Len(String(REAL002) + "%")) / 2
  1266.             Color 11
  1267.             REAL003 = ToReal(BYTE001) - 1
  1268.             AnsiPos BYTE005, ToByte(REAL003)
  1269.             Print String(REAL002) + "%"
  1270.             AnsiPos 45, BYTE001
  1271.         Endif
  1272.     Endif
  1273.     Return
  1274.     :LABEL037
  1275.     If ((INTEGER003 <> 0) && (INTEGER002 <> 0)) Then
  1276.         If (INTEGER003 == 1) Then
  1277.             BYTE004 = 0
  1278.             Goto LABEL038
  1279.         Endif
  1280.         BYTE004 = REAL001
  1281.         :LABEL038
  1282.         REAL001 = ToReal(INTEGER003) / ToReal(INTEGER002)
  1283.         REAL001 = FmtReal(REAL001 * 100, 1, 0)
  1284.         If (BYTE004 <> REAL001) Then
  1285.             Backup Len(String(BYTE004) + "%")
  1286.             Print String(REAL001) + "%"
  1287.         Endif
  1288.     Endif
  1289.     Return
  1290.     :LABEL039
  1291.     End
  1292.  
  1293. ;------------------------------------------------------------------------------
  1294. ;
  1295. ; Usage report (before postprocessing)
  1296. ;
  1297. ; ■ Statements used :
  1298. ;
  1299. ;    1       End
  1300. ;    6       Cls
  1301. ;    4       Color 
  1302. ;    240     Goto 
  1303. ;    216     Let 
  1304. ;    21      Print 
  1305. ;    195     PrintLn 
  1306. ;    145     If 
  1307. ;    1       DispFile 
  1308. ;    12      FCreate 
  1309. ;    11      FOpen 
  1310. ;    2       FAppend 
  1311. ;    54      FClose 
  1312. ;    1       FGet 
  1313. ;    22      FPutLn 
  1314. ;    6       Delete 
  1315. ;    5       Log 
  1316. ;    22      InputStr 
  1317. ;    4       InputYN 
  1318. ;    3       InputInt 
  1319. ;    2       InputDate 
  1320. ;    2       InputTime 
  1321. ;    26      Gosub 
  1322. ;    39      Return
  1323. ;    8       Delay 
  1324. ;    8       Inc 
  1325. ;    1       Dec 
  1326. ;    20      Newline
  1327. ;    2       GetToken 
  1328. ;    1       InputText 
  1329. ;    2       KbdChkOn
  1330. ;    2       KbdChkOff
  1331. ;    3       AnsiPos 
  1332. ;    4       Backup 
  1333. ;    6       Rename 
  1334. ;    31      FSeek 
  1335. ;    34      FRead 
  1336. ;    107     FWrite 
  1337. ;    1       Copy 
  1338. ;    1       GetAltUser 
  1339. ;    1       SearchInit 
  1340. ;    1       SearchFind 
  1341. ;    2       SearchStop
  1342. ;
  1343. ;
  1344. ; ■ Functions used :
  1345. ;
  1346. ;    12      *
  1347. ;    10      /
  1348. ;    272     +
  1349. ;    18      -
  1350. ;    38      ==
  1351. ;    15      <>
  1352. ;    3       <
  1353. ;    10      <=
  1354. ;    1       >
  1355. ;    4       >=
  1356. ;    135     !
  1357. ;    6       &&
  1358. ;    1       ||
  1359. ;    7       Len(
  1360. ;    17      Upper()
  1361. ;    12      Mid()
  1362. ;    2       Left()
  1363. ;    18      Space()
  1364. ;    24      Ferr()
  1365. ;    45      Chr()
  1366. ;    3       Trim()
  1367. ;    9       Date()
  1368. ;    9       Time()
  1369. ;    3       U_Name()
  1370. ;    2       NoChar()
  1371. ;    6       YesChar()
  1372. ;    40      Strip()
  1373. ;    47      String()
  1374. ;    12      Mask_Num()
  1375. ;    5       Mask_File()
  1376. ;    5       Mask_Path()
  1377. ;    3       Mask_Ascii()
  1378. ;    1       PCBDat()
  1379. ;    24      PPEPath()
  1380. ;    11      PcbNode()
  1381. ;    1       ReadLine()
  1382. ;    16      Exist()
  1383. ;    3       I2S()
  1384. ;    9       S2I()
  1385. ;    4       GetY()
  1386. ;    7       GrafMode()
  1387. ;    7       FileInf()
  1388. ;    3       ToByte()
  1389. ;    6       ToReal()
  1390. ;    3       FmtReal()
  1391. ;
  1392. ;------------------------------------------------------------------------------
  1393. ;
  1394. ; Analysis flags : Rd
  1395. ;
  1396. ; R - Read user ■ 5
  1397. ;     User records are read, this may signify that someone wants to get
  1398. ;     various informations about a user (for example his password), but
  1399. ;     this may also be normal for a program accessing user records (for
  1400. ;     example a User Editor)
  1401. ;     ■ Search for : GETALTUSER
  1402. ;
  1403. ; d - Access PCBOARD.DAT ■ 2
  1404. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1405. ;     for many PPE so they can find various informations on the system
  1406. ;     (system paths, max number of lines in messages, ...) but it may also
  1407. ;     be a way to gather vital informations.
  1408. ;     ■ Search for : PCBDAT()
  1409. ;
  1410. ;------------------------------------------------------------------------------
  1411. ;
  1412. ; Postprocessing report
  1413. ;
  1414. ;    1       For/Next
  1415. ;    6       While/EndWhile
  1416. ;    88      If/Then or If/Then/Else
  1417. ;    3       Select Case
  1418. ;
  1419. ;------------------------------------------------------------------------------
  1420. ;                 AEGiS Corp - Break the routines, code against the machines!
  1421. ;------------------------------------------------------------------------------
  1422.