|
Bruce, Thank you very much.
-----Original Message-----
From: bvining@VNET.IBM.COM <bvining@VNET.IBM.COM>
To: RPG400-L@midrange.com <RPG400-L@midrange.com>
Date: Thursday, April 01, 1999 4:33 AM
Subject: ALTSEQ ?
>RPG ALTSEQ (alternate collating sequence) allows you to control how
>character data is sorted and compared. For instance different cultures
>prefer that certain characters sort/compare in different ways; an
>example of this would be the Latin ligature AE (one character) where
>many European nationalities prefer that AE sort/compare between 'a' and
>'b' while Norwegian users may prefer AE sorts/compares after 'z'. As
>another example, a user may prefer that 'a' sort/compare equal with 'A'
>(and not as before/notequal to 'A'). The attached ILE RPG program
>shows simplistically how this can be controlled via the H spec ALTSEQ
>keyword and CRTRPGPGM parameters. This is a SIMPLE example, and in
>real life one would probably use *JOBRUN values, but I didn't want to
>introduce another level of indirection (though one very handy if you
>want one *PGM to support many languages in a culturally correct manner)
>for this example.
>
>Please note that the default behavior is Hex which means no one is
>necessarily "culturally happy", but the program runs the fastest.
>Introducing any collation sequence (other than Hex) will cause more
>work (sometimes substantially more work) "under the covers" (though as
>the sample shows, with the same source code).
>
>Bruce
>
>
> H* To test Hex collation comment out the following H spec
> H ALTSEQ(*EXT)
> H* To test Common Latin-1 collation leave the previous H spec and
> H* compile with CRTBNDRPG XXX SRTSEQ(*LANGIDUNQ) LANGID(ENU)
> H*
> H* To test Common Latin-1 collation leave the previous H spec and
> H* compile with CRTBNDRPG XXX SRTSEQ(*LANGIDUNQ) LANGID(NON)
> H*
> H* To test Common Latin-1 shared collation use previous H spec and
> H* compile with CRTBNDRPG XXX SRTSEQ(*LANGIDSHR) LANGID(ENU)
> D*
> D* Define some constants to check where codepoints collate
> DLatin_AE s 1 inz(x'9E')
> DLatin_a s 1 inz('a')
> DLatin_b s 1 inz('b')
> DLatin_r s 1 inz('r')
> DLatin_s s 1 inz('s')
> DLatin_z s 1 inz('z')
> C* check if between 'a' and 'b'; if so it's Common Latin-1 sequence
> C Latin_AE ifgt Latin_a
> C Latin_AE andlt Latin_b
> C 'Common' dsply
> C endif
> C* check if between 'r' and 's'; if so it's CCSID 37 Hex sequence
> C Latin_AE ifgt Latin_r
> C Latin_AE andlt Latin_s
> C 'Hex ' dsply
> C endif
> C* check if after 'z'; if so it's Norwegian Bokmal sequence
> C Latin_AE ifgt Latin_z
> C 'Bokmal' dsply
> C endif
> C* check if equal 'a'; if so it's Shared weight
> C Latin_AE ifeq Latin_a
> C 'Shared' dsply
> C endif
> C move '1' *inlr
> C return
>
>
>
>>
>>What does it means of the keyword ALTSEQ and the concept
>>about the Collating Sequence?
>>
>>Thanks.
>>
>
>* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>* This is the RPG/400 Discussion Mailing List! To submit a new *
>* message, send your mail to "RPG400-L@midrange.com". To unsubscribe *
>* from this list send email to MAJORDOMO@midrange.com and specify *
>* 'unsubscribe RPG400-L' in the body of your message. Questions should *
>* be directed to the list owner / operator: david@midrange.com *
>* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* This is the RPG/400 Discussion Mailing List! To submit a new *
* message, send your mail to "RPG400-L@midrange.com". To unsubscribe *
* from this list send email to MAJORDOMO@midrange.com and specify *
* 'unsubscribe RPG400-L' in the body of your message. Questions should *
* be directed to the list owner / operator: david@midrange.com *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.