[Info-vax] Text processing on VMS
Arne Vajhøj
arne at vajhoej.dk
Mon Oct 14 09:56:04 EDT 2024
On 10/14/2024 8:30 AM, Simon Clubley wrote:
> On 2024-10-13, Arne Vajhøj <arne at vajhoej.dk> wrote:
>> On 10/13/2024 3:26 PM, Arne Vajhøj wrote:
>>> On 10/13/2024 2:57 PM, Dave Froble wrote:
>>>> Using SEARCH and then a simple Basic program is not that much work.
>>>>
>>>> For example:
>>>>
>>>> SEARCH File1.txt "some text" /output=File2.txt
>>>>
>>>> 1 On Error Goto 90
>>>>
>>>> 10 Open "file2" For Input as File 1%
>>>> Open "File2" For Output as File 2%
>>>>
>>>> 20 Linput #1%, Z$
>>>> Print #2%, Mid(Z$,?,?)
>>>> Goto 20
>>>>
>>>> 90 GoTo 99 If ERR=11
>>>> On Error GoTo 0
>>>>
>>>> 99 End
>>>>
>>>> Simple
>>>> No having to know whatever is your favorite utility
>>>> I seriously doubt there would be much fewer characters
>>>>
>>>> No, I didn't try it ...
>>>
>>> I have confidence in your VMS Basic skills.
>>
>> But I am curious about how you iterate over the file.
>>
>> Are there any benefits from this way compared to:
>>
>> handler eof_handler
>> end handler
>> when error use eof_handler
>> while 1 = 1
>> get #1
>> ! do whatever
>> next
>> end when
>>
>
> That's how a Pascal programmer would write it. David however clearly
> prefers Dartmouth Basic. :-)
>
> BTW, I think your approach is a lot more readable than David's style. :-)
But I have not come up with that construct. I must have gotten
it from somewhere. Just not sure where.
BTW, I think it would be nice if the compiler wizard added
either:
while not eof #1
get #1
' do whatever
next
or:
while true
get #1, eof=100
' do whatever
next
100:
Arne
More information about the Info-vax
mailing list