home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 26 / CD_ASCQ_26_1295.iso / vrac / volume_3.zip / WORK1.BAS < prev   
BASIC Source File  |  1995-09-10  |  9KB  |  254 lines

  1. DECLARE FUNCTION INC! (i%)
  2. DECLARE SUB LocateYX (y%, X%)
  3. DECLARE FUNCTION YesNo$ (Msg$, y%, X%)
  4. DECLARE FUNCTION CharFromTo$ (a$, First%, Last%)
  5. DECLARE FUNCTION CharAt$ (a$, i%)
  6. DECLARE SUB Center.Message (Msg$, Line.Num%)
  7. CONST MAX.SCRN.COL% = 80
  8. CONST MAX.SCRN.ROW% = 25
  9. CONST TRUE% = 1
  10. CONST FALSE% = 0
  11. File.Data$ = ""
  12. VOID$ = ""
  13. Selected.Label% = 0
  14. StopIt% = FALSE%
  15. DIM Label(1 TO 100) AS STRING
  16. CLS
  17. Counter% = 1
  18. '
  19. '*********************************************************************
  20. 'Reads in all Labels in Autoexec.Bat File, Stores each name in a array
  21. 'and then diplays the Label Names to you. You then can pick the one
  22. 'you want to write to a separate file called exec.001
  23. '**********************************************************************
  24. OPEN "C:\AUTOEXEC.BAT" FOR INPUT AS #1
  25.         DO WHILE NOT EOF(1)
  26.                 LINE INPUT #1, Label(Counter%)
  27.                 IF CharAt$(Label(Counter%), 1) = ":" THEN
  28.                         IF Label(Counter%) <> ":END" THEN
  29.                                 PRINT "Label "; Counter%, Label(Counter%)
  30.                                 Counter% = INC!(Counter%)
  31.                         END IF
  32.                 END IF
  33.         LOOP
  34. CLOSE #1
  35. '
  36. '
  37. '**************************************************************************
  38. 'Allows you pick a number for all the labels shown
  39. '**************************************************************************
  40. INPUT "Pick a number from above which one you want to run Memmaker on ? ", Selected.Label%
  41.  
  42. '***************************************************************************
  43. '********* Checks number for label you selected.....cheap error checking!
  44. '***************************************************************************
  45. IF Selected.Label% >= Counter% OR Selected.Label% <= 0 THEN
  46.                 PRINT "Number out of range"
  47.                 CLOSE #2
  48.                 CLOSE #1
  49.                 END
  50. END IF
  51. Store$ = Label(Selected.Label%)
  52. '
  53. '**************************************************************************
  54. 'This actually writes the File EXEC.001 with the label you picked
  55. 'from above
  56. '**************************************************************************
  57. StopIt% = FALSE%
  58. CLS
  59. LOCATE 10, 30
  60. PRINT "Writing EXEC.001 File for LABEL>> " + Store$
  61. LOCATE 11, 30
  62. PRINT "PLEASE WAIT!"
  63. OPEN "C:\AUTOEXEC.BAT" FOR INPUT AS #1
  64.         DO WHILE NOT EOF(1) AND StopIt% = FALSE%
  65.                 LINE INPUT #1, File.Data$
  66.                 IF File.Data$ = Label(Selected.Label%) THEN
  67.                         OPEN "C:\exec.001" FOR OUTPUT AS #2
  68.                         PRINT #2, Label(Selected.Label%)
  69.                         DO
  70.                                 LINE INPUT #1, File.Data$
  71.                                 IF CharAt$(File.Data$, 1) <> ":" THEN
  72.                                         IF UCASE$(CharFromTo(File.Data$, 1, 4)) <> "GOTO" THEN
  73.                                                 PRINT #2, File.Data$
  74.                                         ELSE
  75.                                                 PRINT #2, "REM " + File.Data$
  76.                                         END IF
  77.                                 ELSE
  78.                                         StopIt% = TRUE%
  79.                                         File.Data$ = ""
  80.                                 END IF
  81.                         
  82.                         LOOP WHILE NOT EOF(1) AND StopIt% = FALSE%
  83.                 END IF
  84.          LOOP
  85. CLOSE #2
  86. CLOSE #1
  87. Counter% = 1
  88. LOCATE 12, 30
  89. INPUT "Press Enter to continue", VOID$
  90. CLS
  91.  
  92. OPEN "C:\CONFIG.SYS" FOR INPUT AS #1
  93.         DO WHILE NOT EOF(1)
  94.                 LINE INPUT #1, Label(Counter%)
  95.                 IF CharAt$(Label(Counter%), 1) = "[" THEN
  96.                         PRINT "Label "; Counter%, Label(Counter%)
  97.                         Counter% = INC!(Counter%)
  98.                 END IF
  99.         LOOP
  100. CLOSE #1
  101. PRINT "****** BE SURE TO PICK THE SAME ONE AS YOU DID IN AUTOEXEC.BAT"
  102. PRINT "You picked " + Store$ + " in your AUTOEXEC.BAT file"
  103. INPUT "Pick a number from above which one you want to run Memmaker on ? ", Selected.Label%
  104. '********* Checks number error checking!
  105. IF Selected.Label% >= Counter% OR Selected.Label% <= 0 THEN
  106.                 PRINT "Number out of range"
  107.                 CLOSE #1
  108.                 CLOSE #2
  109.                 END
  110. END IF
  111.  
  112.  
  113. CLS
  114. LOCATE 10, 30
  115. PRINT "Writing SYS.001 File for LABEL>> " + Store$
  116. LOCATE 11, 30
  117. PRINT "Please Wait!"
  118.  
  119. StopIt% = FALSE%
  120. OPEN "C:\CONFIG.SYS" FOR INPUT AS #1
  121.         DO WHILE NOT EOF(1) AND StopIt% = FALSE%
  122.                 LINE INPUT #1, File.Data$
  123.                 IF File.Data$ = Label(Selected.Label%) THEN
  124.                         OPEN "C:\SYS.001" FOR OUTPUT AS #2
  125.                         PRINT #2, "REM " + Label(Selected.Label%)
  126.                         DO
  127.                                 LINE INPUT #1, File.Data$
  128.                                 IF CharAt$(File.Data$, 1) = "[" THEN
  129.                                         StopIt% = TRUE%
  130.                                         File.Data$ = ""
  131.                                 ELSE
  132.                                         PRINT #2, File.Data$
  133.                                 END IF
  134.                        
  135.                         LOOP WHILE NOT EOF(1) AND StopIt% = FALSE%
  136.                 END IF
  137.          LOOP
  138. CLOSE #2
  139. LOCATE 12, 30
  140. INPUT "Press Enter to continue", VOID$
  141. CLS
  142. CLOSE #1
  143. LOCATE 10, 1
  144. PRINT "**************************************************"
  145. PRINT "NOTE:"
  146. PRINT "FIRST WE BACK UP OF THE CURRENT AUTOEXEC.BAT & CONFIG.SYS"
  147. PRINT "TO AUTOEXEC.BAK & CONFIG.BAK"
  148. PRINT "SECOND WE BACK UP THE LABEL FILE YOU SELECTED"
  149. PRINT "THIRD WE DEL AUTOEXEC.BAT & CONFIG.SYS &"
  150. PRINT "THEN WE REPACE IT WITH THE LABEL YOU SELECTED"
  151. PRINT "****************************************************"
  152. PRINT "Do you wish to MAKE THE LABEL FILE YOU SELECTED THE CURRENT"
  153. PRINT "AUTOEXEC.BAT & CONFIG.SYS File? "
  154. PRINT "So that memmaker can process it?"
  155. INPUT "Y to process it or N to Quit ? > ", VOID$
  156. IF UCASE$(VOID$) <> "Y" THEN
  157.         END
  158. ELSE
  159.         CLS
  160.         PRINT "I will now backup your Autoexec.bat & config.sys file"
  161.         INPUT "Press enter to continue", VOID$
  162.         OPEN "c:\gg212.bat" FOR OUTPUT AS #1
  163.  
  164.                 PRINT #1, "copy c:\autoexec.bat c:\autoexec.bak"
  165.                 PRINT #1, "copy C:\exec.001 c:\exec.bak"
  166.                 PRINT #1, "del c:\autoexec.bat "
  167.                 PRINT #1, "ren c:\exec.001 autoexec.bat"
  168.  
  169.  
  170.                 PRINT #1, "copy c:\config.sys c:\config.bak"
  171.                 PRINT #1, "copy c:\sys.001 c:\sys.bak"
  172.                 PRINT #1, "del c:\config.sys"
  173.                 PRINT #1, "copy c:\sys.001 c:\config.sys"
  174.  
  175.         CLOSE #1
  176.         SHELL "c:\gg212.bat"
  177.         SHELL "DEL C:\GG212.BAT"
  178.         PRINT "Press Enter to continue ";
  179.         INPUT VOID$
  180. END IF
  181. END
  182.  
  183. SUB Center.Message (Msg$, Line.Num%)
  184.         IF Line.Num% <= MAX.SCRN.ROW% THEN
  185.                 IF Line.Num% > 0 THEN
  186.                         LOCATE Line.Num%, 1
  187.                         PRINT STRING$(MAX.SCRN.COL%, " ");
  188.                         LOCATE Line.Num%, INT((MAX.SCRN.COL% - LEN(Msg$)) / 2)
  189.                         PRINT Msg$;
  190.                 ELSE
  191.                         BEEP
  192.                 END IF
  193.         ELSE
  194.                 BEEP
  195.         END IF
  196. END SUB
  197.  
  198. FUNCTION CharAt$ (a$, i%)
  199.         IF i% > 0 THEN
  200.                 CharAt$ = MID$(a$, i%, 1)
  201.         ELSE
  202.                 SOUND 2000, 60
  203.         END IF
  204. END FUNCTION
  205.  
  206. FUNCTION CharFromTo$ (a$, First%, Last%)
  207.         IF First% <= Last% THEN
  208.                 CharFromTo$ = MID$(a$, First%, (Last% - First% + 1))
  209.         END IF
  210. END FUNCTION
  211.  
  212. SUB DEC (i%)
  213.         i% = i% - 1
  214. END SUB
  215.  
  216. FUNCTION INC (i%)
  217.         i% = i% + 1
  218.         INC = i%
  219. END FUNCTION
  220.  
  221. SUB LocateYX (y%, X%)
  222.      IF y% > 0 THEN
  223.         IF y% < 26 THEN
  224.                 IF X% > 0 THEN
  225.                         IF X% < 80 THEN
  226.                                 LOCATE y%, X%
  227.                          END IF
  228.                 END IF
  229.         END IF
  230.      END IF
  231. END SUB
  232.  
  233. FUNCTION YesNo$ (Msg$, y%, X%)
  234.  
  235.         'This will return "Y" or "N"
  236.  
  237.         Answer$ = " "
  238.         WHILE (INSTR("YyNn", Answer$) = 0)
  239.                 CALL LocateYX(y%, X%)
  240.                 PRINT Msg$;
  241.                 CurrentX% = POS(0)
  242.                 CurrentY% = CSRLIN
  243.                 INPUT " (Y/N) "; Answer$
  244.                 S = LEN(Answer$)
  245.                 CALL LocateYX(CurrentY%, CurrentX%)
  246.                 PRINT STRING$(S + 9, " ")
  247.                 IF S > 0 THEN Answer$ = LEFT$(Answer$, 1)
  248.  
  249.         WEND
  250.         YesNo$ = UCASE$(Answer$)
  251.  
  252. END FUNCTION
  253.  
  254.