home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / BASIC / BASIC00.ZIP / PRINT.BAS < prev    next >
Encoding:
BASIC Source File  |  1987-01-11  |  3.6 KB  |  131 lines

  1. 0 REM PRINT ROUTINE TO PRINT EDLIN FILES
  2. 1 DEFINT A-Z:DIM A$(100)
  3. 2 N=1:ON ERROR GOTO 3000
  4. 3 INPUT "FILE NAME ", NA$
  5. 4 OPEN NA$ FOR INPUT AS #1
  6. 5 A$(0)=""
  7. 6 C=0
  8. 7 CLS
  9. 9 FALSE=0:TRUE=-1
  10. 10 FFLG=FALSE ' FINAL FLAG SET WHEN LASTRECORD READ
  11. 11 FLG=TRUE
  12. 12 CR$=CHR$(13):LF$=CHR$(10)
  13. 13 INPUT "NUMBER OF CHARACTERS/LINE ",NC
  14. 14 IF NC=0 THEN NC=66
  15. 15 PRINT NC
  16. 19 WHILE NOT FFLG
  17. 21 B$=INPUT$(1,#1)
  18. 25 C=C+1
  19. 30 W=W+1
  20. 35 IF B$="$" THEN GOSUB 3500
  21. 40 IF B$=" " THEN GOSUB 2000
  22. 50 IF B$="." THEN GOSUB 2100
  23. 60 IF B$="'" THEN GOSUB 2200
  24. 62 IF B$=CR$ THEN GOSUB 2300
  25. 63 IF FLG THEN A$(N)=A$(N)+B$
  26. 64 FLG=TRUE
  27. 65 IF EOF(1) THEN FFLG=TRUE
  28. 70 WEND
  29. 75 N=N+1
  30. 80 GOSUB 1000
  31. 100 END
  32. 900 REM INPUT N NO OF WORDS
  33. 910 REM       A$(1)-A$(N) WORDS
  34. 920 REM PRINT'S OUT A$(1)-A$(N)
  35. 930 REM RETURNS WITH
  36. 940 REM       A$(1)=A$(N)   N=1
  37. 950 REM       C=W    W=0
  38. 1000 REM FULL LINE
  39. 1005 A$(N-1)=A$(N-1)+CHR$(13)
  40. 1010 FOR I=1 TO N-1
  41. 1020 LPRINT A$(I);
  42. 1025 A$(I)=""
  43. 1030 NEXT I
  44. 1040 A$(1)=A$(N)
  45. 1045 A$(N)=""
  46. 1050 N=1
  47. 1055 C=W:W=0
  48. 1060 RETURN
  49. 1900 REM INPUT N NO OF WORDS
  50. 1910 REM ADD A SPACE TO A$(N) AND INCREMENT  TO N=N+1
  51. 1920 REM     W=0 ON RETURN
  52. 2000 REM SPACE CHECK
  53. 2010 A$(N)=A$(N)+B$
  54. 2020 IF C>NC THEN GOSUB 1000
  55. 2025 W=0
  56. 2030 N=N+1
  57. 2040 FLG=FALSE
  58. 2050 RETURN
  59. 2090 REM N NO OF CURRENT WORD
  60. 2091 REM ADD . TO A$(N)
  61. 2092 REM THEN SKIP ALL FOLLOWING SPACES
  62. 2093 REM THEN ADD TWO SPACES TO A$(N)
  63. 2094 REM WHICH WILL BE AFTER THE .
  64. 2095 REM     C=C+3   W=1  ACCOUNTS FOR TWO SPACES AND THE CHARACTER IN B$
  65. 2096 REM  IF THE . IS FOLLOWED BY A CR THEN GOTO ROUTINE THAT TREATS CR
  66. 2097 REM  THEN INCREMENT N=N+1
  67. 2100 REM . CHECK
  68. 2110 A$(N)=A$(N)+B$
  69. 2130 B$=INPUT$(1,#1):IF B$="$" THEN GOSUB 3500
  70. 2140 IF B$=" "  THEN GOTO 2130 ELSE A$(N)=A$(N)+"  ":C=C+3
  71. 2145 IF C>NC THEN GOSUB 1000
  72. 2147 IF B$=CR$ THEN GOSUB 2310
  73. 2148 W=1
  74. 2150 N=N+1
  75. 2160 RETURN
  76. 2199 REM SAME COMMENTS AS FOR .
  77. 2200 REM , CHECK
  78. 2210 A$(N)=A$(N)+B$
  79. 2230 B$=INPUT$(1,#1):IF B$="$" THEN GOSUB 3500
  80. 2240 IF B$=" " THEN GOTO 2230 ELSE A$(N)=A$(N)+" ":C=C+2
  81. 2245 IF C>NC THEN GOSUB 1000
  82. 2247 IF B$=CR$ THEN GOSUB 2310
  83. 2248 W=1
  84. 2250 N=N+1
  85. 2260 RETURN
  86. 2290 REM ADD A SPACE TO A$(N) AFTER A CR2300*
  87. 2291 REM N INCREMENTED  N=N+1
  88. 2292 REM AFTER A CR AN LF IS CHECKED FOR
  89. 2293 REM THEN ANOTHER CHARACTER IS READ IN TO SEE IF IT IS A SPACE OR CR TO
  90. 2294 REM INDICATE END OF PARAGRAPH.
  91. 2295 REM ON RETURN C AND W= 1 OR 2 DEPENDING ON WHETHER A SPACE OCCURED TO START
  92. 2296 REM A NEW PARAGRAPH
  93. 2300 REM CARRIAGE RETURN
  94. 2305 A$(N)=A$(N)+" ":N=N+1
  95. 2310 B$=INPUT$(1,#1):IF B$="$" THEN GOSUB 3500
  96. 2320 IF B$=LF$ THEN GOTO 2310
  97. 2325 IF NOT SFLAG THEN GOTO 2340 ' if in the dont adjust lines continue
  98. 2330 IF B$=" " OR B$=CR$ THEN GOTO 2340 ELSE  RETURN
  99. 2340 N=N+1:C$=B$:GOSUB 1000
  100. 2350 C=0:W=0:A$(1)=""
  101. 2360 IF SFLAG THEN LPRINT
  102. 2370 IF C$=" " THEN A$(1)=" ":C=1:W=1
  103. 2375 IF NOT SFLAG THEN A$(1)=C$
  104. 2380 B$=INPUT$(1,#1):IF B$="$" THEN GOSUB 3500
  105. 2390 IF B$=LF$ THEN GOTO 2380
  106. 2400 C=C+1
  107. 2410 W=W+1
  108. 2415 FLG=TRUE
  109. 2420 RETURN
  110. 2999 REM THIS IS WHERE THE SYSTEM GOES IF AN EOF IS DETECTED.  N=N+1 IN ORDER`  TO GET LAST WORD
  111. 3000  X=ERR:Y=ERL
  112. 3010  RESUME 3011
  113. 3011 ON ERROR GOTO 0
  114. 3015 N=N+1
  115. 3020  IF X=62 THEN GOTO 1000 ELSE PRINT "ERROR # " X " OCCURED AT " Y
  116. 3030 END
  117. 3500 REM LOOK AT $ TO SEE IF CONTROL
  118. 3510 B$=INPUT$(1,#1)
  119. 3520 IF B$<>"C" AND B$<>"c" AND B$<>"S" AND B$<>"s" THEN A$(N)=A$(N)+"$":C=C+1:W=W+1:RETURN
  120. 3530 IF B$="S" OR B$="s" THEN SFLAG=FALSE:ELSE SFLAG=TRUE
  121. 3540 FOR IJ=1 TO 3
  122. 3550 B$=INPUT$(1,#1)
  123. 3560 NEXT IJ
  124. 3570 C=1:W=1
  125. 3580 RETURN
  126. OR B$="s" THEN SFLAG=FALSE:ELSE SFLAG=TRUE
  127. 3540 FOR IJ=1 TO 3
  128. 3550 B$=INPUT$(1,#1)
  129. 3560 NEXT IJ
  130. 3570 C=1:W=1
  131.