home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / STARLET / GENIENEC / GENIELST.BAS < prev    next >
BASIC Source File  |  2000-06-30  |  2KB  |  56 lines

  1. 10 PRINT : PRINT "GENIELST.BAS by Keith Petersen, W8SDZ"
  2. 20 PRINT "Version 1.0 - June 6, 1988."
  3. 30 PRINT
  4. 40 PRINT "This program makes a list with one filename and a short description"
  5. 50 PRINT "on each line of the output file.  It is intended to be used with"
  6. 60 PRINT "an input file which was captured from a GEnie directory listing."
  7. 70 PRINT "The capture file must be edited to remove any non-directory"
  8. 80 PRINT "information at the head or tail.  There is a limit of 500 files in"
  9. 90 PRINT "the list.  It is not intended for a full directory list, only for"
  10. 100 PRINT "weekly or monthly updates using GEnie menu option 3."
  11. 110 PRINT
  12. 120 I=1:DIM F$(80),D$(80),A$(500)
  13. 130 OPEN "I",1,"CPM.LST" ' name of capture file
  14. 140 PRINT "Reading input file";
  15. 150 WHILE NOT EOF(1)
  16. 160     LINE INPUT #1,F$
  17. 170     LINE INPUT #1,D$
  18. 180     A$(I)=MID$(F$,7,12)+"   "+MID$(D$,12,(LEN(D$)-10))
  19. 190     PRINT ".";
  20. 200     I=I+1
  21. 210 WEND
  22. 220 CLOSE #1
  23. 230 ' Sort routine
  24. 240 I=I-1 : N=I : PRINT : PRINT
  25. 250 PRINT I "files in this list."
  26. 260 '
  27. 270 ' This starts the actual sort
  28. 280 '
  29. 290 PRINT: PRINT "Starting sort..."
  30. 300 J4=N
  31. 310 J4=J4\2
  32. 320 IF J4=0 THEN 450 'DONE
  33. 330 J2=N-J4
  34. 340 J=1
  35. 350 I=J
  36. 360 J3=I+J4
  37. 370 '
  38. 380 IF A$(I) <= A$(J3) THEN 420
  39. 390 SWAP A$(I),A$(J3)
  40. 400 I=I-J4
  41. 410 IF I>=1 THEN 360
  42. 420 J=J+1
  43. 430 IF J>J2 THEN 310
  44. 440 GOTO 350
  45. 450 PRINT "Sort completed.."
  46. 460 '
  47. 470 ' Print sorted list to output file
  48. 480 '
  49. 490 OPEN "O",2,"CPM.OUT" ' name of output file
  50. 500 FOR I=1 TO N
  51. 510 PRINT #2,A$(I)
  52. 520 NEXT I
  53. 530 CLOSE #2
  54. 540 PRINT : PRINT N "names written to output file." : PRINT
  55. 550 END
  56.