home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / vrac / cols14.zip / COLI.BAS next >
BASIC Source File  |  1995-06-07  |  4KB  |  118 lines

  1. CLS
  2. PRINT "               TEXT COLUMN INTERCHANGE PROGRAM"
  3. PRINT "                           COLI.BAS"
  4. PRINT "                COPYRIGHT (C) 1995 CHUCK BERNT"
  5. PRINT "                      ALL RIGHTS RESERVED"
  6. PRINT
  7. PRINT
  8. print
  9. print "  This program changes columns in a text file.  It can total"
  10. print "  (and average) any numeric column or calculate any column"
  11. print "  that can be expressed as a QBASIC expression of the other columns."
  12. print "  The expression may contain any QBASIC arithmetic or logical"
  13. print "  operator or function.  Text may also be inserted.  The columns"
  14. print "  can be defined (delimited) by white spaces, spaces, tabs, commas "
  15. print "  or any valid ASCII character or series of characters.  This"
  16. print "  program is written in QBASIC and will only work on machines"
  17. print "  that have QBASIC (usually DOS versions later than 5.0)."
  18. PRINT
  19. PRINT
  20. INPUT "Please type enter to continue ...", XDUMMY$
  21. CLS
  22. PRINT
  23. PRINT "    When the program asks 'OUTPUT COLUMN X =' type in the input"
  24. PRINT "    column number you would like in that output column & ENTER."
  25. PRINT "**FOR EXAMPLE: 3 will place input column 3 in the output column."
  26. PRINT "                                 OR"
  27. PRINT "    Type any QBASIC expression using CX to represent input"
  28. PRINT "    column X in the expression."
  29. PRINT "**FOR EXAMPLE: (C1+C2)/2 will place the average of input"
  30. print "               columns one and two in that output column."
  31. PRINT "                                 OR"
  32. PRINT "    Type any text starting with T.  This text will appear in"
  33. print "    every line in that output column (without the leading T)."
  34. print "    you may add trailing spaces."
  35. PRINT "**FOR EXAMPLE: TABC    will place ABC    in every line in that"
  36. print "               output column."
  37. PRINT
  38. PRINT "  TO END INPUT JUST ENTER A BLANK LINE."
  39. APPEN$ = "\COLS\TXTTMP.BAS"
  40. OPEN APPEN$ FOR APPEND AS #1
  41. CAPT$ = "T"
  42. SMALLT$ = "t"
  43. CAPC$ = "C"
  44. SMALLC$ = "c"
  45. QUOTE$ = CHR$(34)
  46.  
  47. PRINT #1, "GENERATEOUTPUTCOLS:"
  48.  
  49. FOR I = 1 TO 200
  50. I$ = LTRIM$(STR$(I))
  51. REENTER:
  52. PRINT "OUTPUT COLUMN "; I; " = ";
  53. LINE INPUT INPUTLINE$
  54. IF INPUTLINE$ = "" THEN GOTO CLOSING
  55. INCAPT = INSTR(1, INPUTLINE$, CAPT$)
  56. INSMALLT = INSTR(1, INPUTLINE$, SMALLT$)
  57. IF (INCAPT = 1) OR (INSMALLT = 1) THEN GOTO INSERTTEXT
  58. INCAPC = INSTR(1, INPUTLINE$, CAPC$)
  59. INSMALLC = INSTR(1, INPUTLINE$, SMALLC$)
  60. IF (INCAPC <> 0) OR (INSMALLC <> 0) THEN GOTO INSERTEXPRESSION
  61. IF (VAL(INPUTLINE$) < 1) OR (VAL(INPUTLINE$) > 200) THEN GOTO OUTOFRANGE
  62. PRINT #1, "OC$("; I$; ") = "; "C$("; INPUTLINE$; ")"
  63. REM PRINT "OC$("; I$; ") = "; "C$("; INPUTLINE$; ")"
  64. GETNEXTCOLUMN:
  65. NEXT I
  66.  
  67.  
  68. INSERTTEXT:
  69. MID$(INPUTLINE$, 1, 1) = QUOTE$
  70. PRINT #1, "OC$("; I$; ") = "; INPUTLINE$; QUOTE$
  71. REM PRINT "OC$("; I$; ") = "; INPUTLINE$; QUOTE$
  72. GOTO GETNEXTCOLUMN
  73.  
  74. INSERTEXPRESSION:
  75. REM PRINT "INSERT EXPRESSION"
  76.  
  77. START = 1
  78. CAPINPUTLINE$ = UCASE$(INPUTLINE$)
  79.  
  80. PARSE:
  81. CPOSITION = INSTR(START, CAPINPUTLINE$, CAPC$)
  82. IF CPOSITION = 0 THEN GOTO EQUATION
  83. COLNUMBERPOS = CPOSITION + 1
  84. COLSTRING$ = MID$(CAPINPUTLINE$, COLNUMBERPOS, 3)
  85. COLNUMBER = VAL(COLSTRING$)
  86. COLNUMBER$ = LTRIM$(STR$(COLNUMBER))
  87. START = COLNUMBERPOS + 2
  88. PRINT #1, "C"; COLNUMBER$; " = "; "VAL(C$("; COLNUMBER$; "))"
  89. REM PRINT "C"; COLNUMBER$; " = "; "VAL(C$("; COLNUMBER$; "))"
  90. GOTO PARSE
  91.  
  92. EQUATION:
  93. PRINT #1, "OC$("; I$; ") = LTRIM$(STR$("; INPUTLINE$; "))"
  94. REM PRINT "OC$("; I$; ") = LTRIM$(STR$("; INPUTLINE$; "))"
  95. GOTO GETNEXTCOLUMN
  96.  
  97. OUTOFRANGE:
  98. PRINT "  YOUR INPUT WAS "; INPUTLINE$; " AND SHOULD HAVE BEEN A NUMBER"
  99. PRINT "  BETWEEN 1 AND 200 INCLUSIVE, THE LETTER T FOLLOWED BY TEXT OR"
  100. PRINT "  AN EXPRESSION CONTAINING THE LETTER C (YOU CAN JUST ADD THE"
  101. PRINT "  LETTER C TO YOUR PRESENT EXPRESSION SINCE C = 0)."
  102. PRINT "  PLEASE REENTER THIS COLUMN."
  103. GOTO REENTER
  104.  
  105.  
  106.  
  107.  
  108. CLOSING:
  109. I = I - 1
  110. PRINT #1, "LASTCOL = "; I
  111. REM PRINT "LASTCOL = "; I
  112. PRINT #1, "RETURN"
  113. REM PRINT "CLOSING TXTTMP"
  114. CLOSE
  115. REM SYSTEM
  116. CHAIN "\COLS\TXTTMP"
  117.  
  118.