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 / ENTERPRS / CPM / UTILS / F / PWAIDS.ARK / SWPREAD.BAS < prev    next >
BASIC Source File  |  1989-09-27  |  2KB  |  99 lines

  1. $lines
  2. var c1=real
  3. var c2,i=integer
  4. dim char a(30)
  5. var b=char
  6. print chr(26)
  7. text 0,$
  8. SWPREAD To retrieve text from Perfect Writer PW.SWP file up to 62k
  9.             Don Davis May 6, 1984
  10.       Inspired by Edmund Bolles (KUGRAM 2:2, 1984)
  11.  
  12.  
  13. Run SWPREAD from drive A.  Then put PW.SWP in
  14. drive A and a diskette with adequate space in drive B.
  15.  
  16. $
  17. input3 "Hit any key when ready";b
  18. files D,D,S(1),S(1)
  19. rename "b:SWAP.MSS" to "b:SWAPMSS.OLD"
  20. create "b:SWAP.MSS"
  21. open #2,"a:PW.SWP"
  22. open #3,"b:SWAP.MSS"
  23. print
  24. print
  25. print "Bypassing configuration data"
  26. for c1=1 to 1024
  27.   read #2;b
  28. next c1
  29. print
  30. print "Creating b:SWAP.MSS"
  31. print
  32. for c1=1 to 62
  33. for c2=1 to 1024
  34. rem READ A CHARACTER OF PW.SWP AND TEST WHETHER WANTED
  35.   10 read #2;b
  36.   if b>chr(31) and b<chr(160) or b=chr(9) or b=chr(10) or b=chr(13) then
  37.   begin
  38.     if b=chr(13) then
  39.     begin
  40.       i=1
  41.       repeat
  42.     begin
  43.       read #2;a(i)
  44. rem ABOVE: IF ^M [chr(13)] FOUND, LOOK FOR ANOTHER WITHIN 30 CHARACTERS
  45. rem BELOW: IF 2ND ^M FOUND, DISCARD INTERVENING CHARACTERS AND RESUME AT 10
  46.       if a(i)=chr(13) then 10
  47.       else i=i+1
  48.     end
  49.       until i=30
  50. rem IF NO 2ND ^M WITHIN 30 CHARACTERS, SAVE THE SEARCHED CHARACTERS AND...
  51.       for i=1 to 29
  52.     if a(i)>chr(31) and a(i)<chr(160) or a(i)=chr(9) or a(i)=chr(10) then
  53.     begin
  54.       print a(i);
  55.       write #3;a(i)
  56.     end
  57.       next i
  58. rem ...RESUME AT 10
  59.       goto 10
  60.     end
  61.     else begin
  62.       print b;
  63.       write #3;b
  64. rem ABOVE: SAVE DESIRED CHARACTERS
  65.     end
  66.   end
  67. next c2
  68. rem OPPORTUNITY TO STOP EVERY 5k
  69. if c1/5=int(c1/5) then
  70. begin
  71.   print
  72.   print
  73.   print c1;"k have been read.  ";
  74.   input3 "Continue reading? (Y or N)";b
  75.   if b='n' or b='N' then 0out
  76.   print
  77.   print
  78. end
  79. else begin
  80.   print
  81.   print
  82.   print c1;"k read"
  83.   print
  84. end
  85. next c1
  86. rem ADD END OF FILE
  87. 0out b=chr(26)
  88. write #3;b
  89. close #3
  90. print chr(26)
  91. text 0,$
  92. Recovered text is in b:SWAP.MSS
  93.  
  94.  
  95. BEFORE editing b:SWAP.MSS, make a copy
  96. of the PW.SWP you have just read.$
  97. end
  98. S
  99. rem BELOW: IF 2ND ^M FOUND, DISCAR