home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / telecomm / storm100 / dialsort.bas < prev    next >
BASIC Source File  |  1993-11-02  |  3KB  |  107 lines

  1. 'Sorts dial directory alphabetically
  2. 'Assumes 10 blank entries is end of directory
  3. 'Zaps entries with no name or number
  4. mx = SET("STORM","Dialer","Entries")
  5. IF mx = 0 THEN mx = 60:'use default
  6. DIM dnam$(mx),dnum$(mx),dlog$(mx),dtrm$(mx),dcom$(mx),flag(mx)
  7.     PRINT "Retrieving dial directory from memory..."
  8.     PRINT ""
  9. LastFound = 0
  10. FAST ON :
  11.     j = 1
  12.     null = 0
  13.     FOR i = 1 TO mx
  14.         mynum$ = STR$(i)
  15.         dnam$(j) = SET$("DIALDIR",mynum$,"Name")
  16.         dnum$(j) = SET$("DIALDIR",mynum$,"#")
  17.         dlog$(j) = SET$("DIALDIR",mynum$,"Logon")
  18.         dtrm$(j) = SET$("DIALDIR",mynum$,"Term")
  19.         dcom$(j) = SET$("DIALDIR",mynum$,"COM")
  20. 'If no name and number, trash entry
  21.         x$ = dnam$(j) + dnum$(j)
  22.         IF LEN(x$) = 0 THEN
  23.             SET "DIALDIR",mynum$,"Logon",""
  24.             SET "DIALDIR",mynum$,"Term",""
  25.             SET "DIALDIR",mynum$,"COM",""
  26.             dlog$(j) = ""
  27.             dtrm$(j) = ""
  28.             dcom$(j) = ""
  29.             flag(i) = 1
  30.         ENDIF
  31.         x$ = x$ + dlog$(j) + dtrm$(j) + dcom$(j)
  32.         IF LEN(x$) > 0 THEN
  33.             PRINT "    ";dnam$(j)
  34.             total = j
  35.             LastFound = i
  36.             flag(i) = 1
  37.             j = j + 1
  38.             null = 0
  39.         ELSE
  40.             null = null + 1
  41.             IF null = 10 THEN
  42.                 POP
  43.                 GOTO ok1
  44.             ENDIF
  45.         ENDIF
  46.     NEXT i
  47. ok1:
  48.     PRINT
  49.     high = i
  50.     x$ = " entries."
  51.     IF total = 1 THEN x$ = " entry."
  52.     PRINT "Found ";total;x$
  53.     IF total < 2 THEN END
  54.     PRINT "Beginning sort phase..."
  55. sort1:
  56.     changed = 0
  57.     FOR i = 1 TO total - 1
  58.         IF dnam$(i + 1) < dnam$(i) THEN
  59.             tnam$ = dnam$(i)
  60.             tnum$ = dnum$(i)
  61.             tlog$ = dlog$(i)
  62.             ttrm$ = dtrm$(i)
  63.             tcom$ = dcom$(i)
  64.             dnam$(i) = dnam$(i + 1)
  65.             dnum$(i) = dnum$(i + 1)
  66.             dlog$(i) = dlog$(i + 1)
  67.             dtrm$(i) = dtrm$(i + 1)
  68.             dcom$(i) = dcom$(i + 1)
  69.             dnam$(i + 1) = tnam$
  70.             dnum$(i + 1) = tnum$
  71.             dlog$(i + 1) = tlog$
  72.             dtrm$(i + 1) = ttrm$
  73.             dcom$(i + 1) = tcom$
  74.             changed = 1
  75.         ENDIF
  76.     NEXT i
  77.     IF changed > 0 THEN GOTO sort1
  78. sorted:
  79.     PRINT "Sort phase complete."
  80.     PRINT "Storing updated directory..."
  81.     PRINT
  82.     FOR i = 1 TO total
  83.         PRINT "    ";dnam$(i)
  84.         mynum$ = STR$(i)
  85.         SET "DIALDIR",mynum$,"Name",dnam$(i)
  86.         SET "DIALDIR",mynum$,"#",dnum$(i)
  87.         SET "DIALDIR",mynum$,"Logon",dlog$(i)
  88.         SET "DIALDIR",mynum$,"Term",dtrm$(i)
  89.         SET "DIALDIR",mynum$,"COM",dcom$(i)
  90.     NEXT i
  91. 'Clear entries past end of sorted list
  92.     FOR i = total + 1 TO LastFound
  93.         IF flag(i) THEN
  94.             mynum$ = STR$(i)
  95.             SET "DIALDIR",mynum$,"Name",""
  96.             SET "DIALDIR",mynum$,"#",""
  97.             SET "DIALDIR",mynum$,"Logon",""
  98.             SET "DIALDIR",mynum$,"Term",""
  99.             SET "DIALDIR",mynum$,"COM",""
  100.         ENDIF
  101.     NEXT i
  102.     PRINT ""
  103.     PRINT "Process complete."
  104.     PRINT "Verify and save new dial directory."
  105.     END
  106.  
  107.