Date : Tue, 18 Dec 1990 11:13:40 GMT
From : Christopher Currie <THRA004@cms.ulcc.ac.uk>
Subject: WS document to ASCII
>If you do accidently [sic] create a file in document mode, you can always use
>good ol' pip to strip the high bits off:
> pip ascii.txt:=highbits.doc[z]
I always used to use this method. An alternative is to get the PD VDE 2.66
editor from Simtel20. With this, you can load up a file in document mode
and save it back in non-document mode with the high bits stripped. Frankly
after using VDE on CP/M I wouldn't go back to Wordstar 3 unless I absolutely
had to (e.g. for a large file which VDE can't handle).
However, the high-bit problem isn't the only one you need to get round to
produce a pure ASCII file from a WS document file.
If you have used print control
codes (e.g ^A, ^S, ^T, ^B etc.) you will need to strip those out too. WS
3.3 will replace most of them by nothing in a global replacement, but it
won't recognize ^S (underline) in replacement mode. WS 4 (at least the DOS
version) will. With VDE, you could write a macro to do it. Alternatively,
having stripped the high bits with PIP ..[Z], you would need to run the file
through a second filter to get rid of the control codes. The following bit
of MS-BASIC code gives an idea:
[Initialization]
ctrl%=""
FOR n= 1 to 9
ctrl%=ctrl%+chr%(n)
next
for n=11 to 12
ctrl%=ctrl%+chr%(n)
next
For n=14 to 25
ctrl%=ctrl%+chr%(n)
next
[leave chr%(10) and (13) in]
....
[processing the file]
(assumes that infile is no. 1, outfile no. 2)
while not eof(1)
line input #1, a%
for count=1 to len(ctrl%)
x=instr(a%,mid%(ctrl%,count,1))
while x >0
mid%(a%,x,1)="":' [or " " if you're worried about zero bytes]
x=instr(a%,mid%(ctrl%,count,1))
wend
next count
print #2,a%
wend
My syntax may be a bit ropey, but this gives the general idea. Let's
have a C version, please.
Christopher