>>>>>Thanks, but I don't think so. :) It's got to be positional. That would overwrite every occurance of that value throughout the string, no?
>>>>>
>>>>>Given a string with a specified delimiter
>>>>>
>>>>>ISA*00*00*ZZ*TEST^
>>>>>
>>>>>remove the ZZ and replace it with MY. It's in the 4th "field" position.
>>>>>
>>>>>Thanks!
>>>>
>>>>Hi Mike,
>>>>
>>>>Most well-formed EDI documents are (or can be) one long string, so I'm not sure what you are asking for is doable.
>>>>
>>>>If you break up the transactions into segments it might be possible, but I don't think there is a 'generic' solution. I would guess that you typically need to know what Loop/Segment you are dealing with.
>>>
>>>Yes, each segment would be treated as a "record". The ISA line has preset field "positions".
>>>
>>
>>When dealing with elements by position, I typically call ALINSE() to break up the document into segments, then ALINES() again on segments of interest (and ALINES() again if a need a sub-element).
>
>I've found I get the best performance by pulling a text file into a cursor and processing it with scan/replace.
>
>I'd have to use alines to grab the elements, replace one element and undo the alines back to the string before writing it back to the field.
Mike,
I think that the UNA block also specifies a ReleaseIndicator (an escape char)
So you may get in trouble using alines()
You'll have to test the char before the ComponentSeparator/DataElementSeparator. If that char is an escape char, then you'll have to test the char before
ie
aa'bb
a?'a'bb
a??'bb
Gregory