home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #2 / RBBS_vol1_no2.iso / 002z / wswpdata.bas < prev    next >
BASIC Source File  |  1988-06-13  |  4KB  |  74 lines

  1. 100 PRINT " WSWPDATA.bas  Test Version 0.9  (c) 1988 Bob Gallie  312-863-8591
  2. 105 '                       880402 draft.  Seems to work well. Easier dis-
  3. 110 '                       tribution & reading chosen over speed.
  4. 115 PRINT '  Permission may be presumed for NONCOMMERCIAL uses of this program.         .
  5. 120 PRINT "  This is a program to use a data file of one of these types
  6. 125 PRINT "  to create a data file of the other type:
  7. 130 PRINT "
  8. 135 PRINT "                  - COMMA-DELIMITED CHARACTER DATA
  9. 140 PRINT "                  - WORD PERFECT MERGE DATA.
  10. 145 PRINT
  11. 150 PRINT " COMMA-DELIMITED CHARACTER DATA files are the kind that:
  12. 155 PRINT "    - are used by WordStar as MailMerge data;
  13. 160 PRINT "    - have character fields separated with commas, and may have
  14. 165 PRINT "        quotation marks surrounding some or all fields,
  15. 170 PRINT "    - have a carriage return + linefeed after each record
  16. 175 PRINT "        except the last record;
  17. 180 PRINT "    - are created when BASIC does WRITE# with string data;
  18. 185 PRINT "    - dBASE creates with .COPY TO XXX.TXT delimited with "+CHR$(34)
  19. 190 PRINT
  20. 195 PRINT " WORD PERFECT MERGE DATA files are the kind that:
  21. 200 PRINT "    - Word Perfect creates for data to merge with documents;
  22. 205 PRINT "    - have ASCII 005 + ASCII 010 after each record;
  23. 210 PRINT "    - have ASCII 018 + ASCII 010 after each field except those
  24. 215 PRINT "        fields which conclude records.
  25. 220 ON ERROR GOTO 0:BEEP
  26. 225 PRINT "
  27. 230 SOURCE.ALA.WS%=-1
  28. 235 PRINT "IS THE SOURCE FILE Comma-delimited OR Word Perfect (C or W) ?"
  29. 240 X$=INPUT$(1)
  30. 245 X%=INSTR("cCwW",X$)
  31. 250 IF X%=0 THEN GOTO 235 ELSE IF X%>2 THEN SOURCE.ALA.WS%=0
  32. 255 INPUT"Enter the full precise name of the source file: ";X$
  33. 260 OPEN X$ FOR INPUT AS #1:CLOSE ' for error if source doesn't exist.
  34. 265 OPEN X$ AS #1 LEN=1: FIELD #1, 1 AS I$
  35. 270 INPUT"Name a file for the output: ";OUTPUTFILE$
  36. 275 OPEN OUTPUTFILE$ AS #2 LEN=1:FIELD #2, 1 AS O$
  37. 280 I!=1:LOF1!=LOF(1):NEWRECORD%=-1
  38. 285 PRINT "Per cent processed: 0 ... ";
  39. 290 IF SOURCE.ALA.WS% THEN GOSUB 335 ELSE GOSUB 405
  40. 295 CLOSE:BEEP
  41. 300 PRINT:PRINT "Finished.  The files are closed.":BEEP
  42. 305 PRINT "The output file was --->  ";OUTPUTFILE$
  43. 310 'print:SHELL "copy/b "+OUTPUTFILE$+" con" '<-- debugging line...
  44. 315 PRINT
  45. 320 PRINT "Enter RUN for another run.  SYSTEM for return to DOS.  ...":PRINT
  46. 325 END '=============
  47. 330 '
  48. 335 'wstowp: 'subroutine ====
  49. 340 COPYINGASTRING%=0
  50. 345 WHILE I! < LOF1!
  51. 350   GET #1:I!=I!+1
  52. 355   IF I$=CHR$(13) THEN NEWRECORD%=-1:LSET O$=CHR$(5):PUT #2:LSET O$=CHR$(10):PUT #2:PRINT USING " ### ...";I!/LOF1!*100;:QUOTESFLAG%=0:  GOTO 395
  53. 360   IF I$=CHR$(10) THEN IF NEWRECORD%=-1 THEN GOTO 395 '...
  54. 365   NEWRECORD%=0
  55. 370   IF I$=CHR$(34) THEN QUOTESFLAG%=NOT QUOTESFLAG%:GOTO 395
  56. 375   IF I$=" "AND QUOTESFLAG%=0 AND COPYINGASTRING%=0 THEN GOTO 395
  57. 380   COPYINGASTRING%=-1
  58. 385   IF I$=","AND QUOTESFLAG%=0 THEN COPYINGASTRING%=0:LSET O$=CHR$(18):PUT #2:LSET O$=CHR$(10):PUT #2:GOTO 395
  59. 390   LSET O$=I$:PUT #2
  60. 395 WEND
  61. 400 RETURN
  62. 405 'wptows: 'subroutine ===
  63. 410 WHILE I! < LOF1!
  64. 415   IF NEWRECORD%=-1 THEN LSET O$=CHR$(34):PUT #2:NEWRECORD%=0
  65. 420   GET #1:I!=I!+1
  66. 425   IF I$=CHR$(5) THEN LSET O$=CHR$(34):PUT #2:LSET O$=CHR$(13):PUT #2:LSET O$=CHR$(10):PUT #2:PRINT USING " ### ...";I!/LOF1!*100;:GET #1:I!=I!+1:NEWRECORD%=-1:GOTO 440
  67. 430   IF I$=CHR$(18) THEN LSET O$=CHR$(34):PUT #2:LSET O$=",":PUT #2:LSET O$=CHR$(34):PUT #2:GET #1:I!=I!+1:GOTO 440
  68. 435   LSET O$=I$:PUT #2
  69. 440 WEND
  70. 445 LSET O$=CHR$(26):PUT #2 'EOF mark
  71. 450 RETURN
  72. 455 'end of listing
  73.  
  74.