Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Need new UDF strreplace
Message
De
09/05/2007 14:10:41
 
 
À
09/05/2007 13:24:50
Mike Yearwood
Toronto, Ontario, Canada
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 9 SP1
Divers
Thread ID:
01223626
Message ID:
01223917
Vues:
19
>>>>>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
&& assuming
&& '  = separator
&& ?  = ReleaseIndicator 

aa'bb     && two fields: aa and bb
a?'a'bb   && two fields: a'a and bb
a??'bb    && two fields:  a? and bb
Gregory
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform