Hmmm. In PB 3.94 all works fine. There was a bug-discussion about the 'ß' some time ago, but it was already fixed
Code: Select all
;- UCaseEx, LCaseEx
;- let you specify another charmap, e.g. for another language
;-
;- the char-mapping bases on hashmaps from the DataSection
;-
;- if you need other languages, please let me know, it's easy to
;- implement them using the LUCaseWrapper-tool on windows.
;-
;- by Froggerprogger 29.01.05
;-
;/ some constants
#CharTable_Western = 0 ; (default)
#CharTable_Greek = 1
;/ the procedures
Procedure.s UCaseEx(p_str.s, p_tableID.l)
Protected i.l, pos.l, tempB.b, offset.l
If p_tableID = #CharTable_Greek
offset = ?UCaseTableGreek
Else
offset = ?UCaseTableWestern
EndIf
For i=0 To Len(p_str)
pos = @p_str + i
PokeB(pos, PeekB(offset + PeekB(pos) & $FF) & $FF)
Next
ProcedureReturn p_str
EndProcedure
Procedure.s LCaseEx(p_str.s, p_tableID.l)
Protected i.l, pos.l, tempB.b, offset.l
If p_tableID = #CharTable_Greek
offset = ?LCaseTableGreek
Else
offset = ?LcaseTableWestern
EndIf
For i=0 To Len(p_str)
pos = @p_str + i
PokeB(pos, PeekB(offset + PeekB(pos) & $FF) & $FF)
Next
ProcedureReturn p_str
EndProcedure
End
;/ the hashmaps
DataSection
UCaseTableWestern:
;///// .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Data.b 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
;///// !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. // 00 11 22 33 44 55 66 77 88 99 :: ;; << == >> ??
Data.b 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
;///// @@ AA BB CC DD EE FF GG HH II JJ KK LL MM NN OO PP QQ RR SS TT UU VV WW XX YY ZZ [[ \\ ]] ^^ __
Data.b 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95
;///// `` aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO pP qQ rR sS tT uU vV wW xX yY zZ {{ || }} ~~
Data.b 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127
;///// €€ �� ‚‚ ƒƒ „„ …… †† ‡‡ ˆˆ ‰‰ ŠŠ ‹‹ ŒŒ �� ŽŽ �� �� ‘‘ ’’ ““ ”” •• –– —— ˜˜ ™™ šŠ ›› œŒ �� žŽ ŸŸ
Data.b 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,138,155,140,157,142,159
;///// ¡¡ ¢¢ ££ ¤¤ ¥¥ ¦¦ §§ ¨¨ ©© ªª «« ¬¬ ®® ¯¯ °° ±± ²² ³³ ´´ µµ ¶¶ ·· ¸¸ ¹¹ ºº »» ¼¼ ½½ ¾¾ ¿¿
Data.b 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191
;///// ÀÀ ÁÁ ÂÂ ÃÃ ÄÄ ÅÅ ÆÆ ÇÇ ÈÈ ÉÉ ÊÊ ËË ÌÌ ÍÍ ÎÎ ÏÏ ÐÐ ÑÑ ÒÒ ÓÓ ÔÔ ÕÕ ÖÖ ×× ØØ ÙÙ ÚÚ ÛÛ ÜÜ ÝÝ ÞÞ ßß
Data.b 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223
;///// àÀ áÁ â ãà äÄ åÅ æÆ çÇ èÈ éÉ êÊ ëË ìÌ íÍ îÎ ïÏ ðÐ ñÑ òÒ óÓ ôÔ õÕ öÖ ÷÷ øØ ùÙ úÚ ûÛ üÜ ýÝ þÞ ÿŸ
Data.b 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,247,216,217,218,219,220,221,222,159
LcaseTableWestern:
;///// .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Data.b 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
;///// !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. // 00 11 22 33 44 55 66 77 88 99 :: ;; << == >> ??
Data.b 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
;///// @@ Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz [[ \\ ]] ^^ __
Data.b 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95
;///// `` aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz {{ || }} ~~
Data.b 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127
;///// €€ �� ‚‚ ƒƒ „„ …… †† ‡‡ ˆˆ ‰‰ Šš ‹‹ Œœ �� Žž �� �� ‘‘ ’’ ““ ”” •• –– —— ˜˜ ™™ šš ›› œœ �� žž Ÿÿ
Data.b 128,129,130,131,132,133,134,135,136,137,154,139,156,141,158,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,255
;///// ¡¡ ¢¢ ££ ¤¤ ¥¥ ¦¦ §§ ¨¨ ©© ªª «« ¬¬ ®® ¯¯ °° ±± ²² ³³ ´´ µµ ¶¶ ·· ¸¸ ¹¹ ºº »» ¼¼ ½½ ¾¾ ¿¿
Data.b 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191
;///// Àà Áá Ââ Ãã Ää Åå Ææ Çç Èè Éé Êê Ëë Ìì Íí Îî Ïï Ðð Ññ Òò Óó Ôô Õõ Öö ×× Øø Ùù Úú Ûû Üü Ýý Þþ ßß
Data.b 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,215,248,249,250,251,252,253,254,223
;///// àà áá ââ ãã ää åå ææ çç èè éé êê ëë ìì íí îî ïï ðð ññ òò óó ôô õõ öö ÷÷ øø ùù úú ûû üü ýý þþ ÿÿ
Data.b 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
UCaseTableGreek:
;///// .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Data.b 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
;///// !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. // 00 11 22 33 44 55 66 77 88 99 :: ;; << == >> ??
Data.b 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
;///// @@ AA BB CC DD EE FF GG HH II JJ KK LL MM NN OO PP QQ RR SS TT UU VV WW XX YY ZZ [[ \\ ]] ^^ __
Data.b 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95
;///// `` aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO pP qQ rR sS tT uU vV wW xX yY zZ {{ || }} ~~
Data.b 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127
;///// ¤¤ ?? ‚‚ ƒƒ „„ …… †† ‡‡ ˆˆ ‰‰ ŠŠ ‹‹ ŒŒ ?? ŽŽ ?? ?? ‘‘ ’’ ““ ”” •• –– —— ˜˜ ™™ šš ›› œœ ?? žž ŸŸ
Data.b 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159
;///// ¡¡ ¢¢ ££ ¤¤ ¥¥ ¦¦ §§ ¨¨ ©© ªª «« ¬¬ ®® ¯¯ °° ±± ²² ³³ ´´ µµ ¶¶ ·· ¸¸ ¹¹ ºº »» ¼¼ ½½ ¾¾ ¿¿
Data.b 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191
;///// ÀÀ ÁÁ  Ãà ÄÄ ÅÅ ÆÆ ÇÇ ÈÈ ÉÉ ÊÊ ËË ÌÌ ÍÍ ÎÎ ÏÏ ÐÐ ÑÑ ÒÒ ÓÓ ÔÔ ÕÕ ÖÖ ×× ØØ ÙÙ ÚÚ ÛÛ Ü¢ ݸ Þ¹ ߺ
Data.b 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,162,184,185,186
;///// àà áÁ â ãà äÄ åÅ æÆ çÇ èÈ éÉ êÊ ëË ìÌ íÍ îÎ ïÏ ðÐ ñÑ òÓ óÓ ôÔ õÕ öÖ ÷× øØ ùÙ úÚ ûÛ ü¼ ý¾ þ¿ ÿÿ
Data.b 224,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,211,211,212,213,214,215,216,217,218,219,188,190,191,255
LCaseTableGreek:
;///// .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Data.b 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
;///// !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. // 00 11 22 33 44 55 66 77 88 99 :: ;; << == >> ??
Data.b 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
;///// @@ Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz [[ \\ ]] ^^ __
Data.b 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95
;///// `` aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz {{ || }} ~~
Data.b 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127
;///// ¤¤ ?? ‚‚ ƒƒ „„ …… †† ‡‡ ˆˆ ‰‰ ŠŠ ‹‹ ŒŒ ?? ŽŽ ?? ?? ‘‘ ’’ ““ ”” •• –– —— ˜˜ ™™ šš ›› œœ ?? žž ŸŸ
Data.b 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159
;///// ¡¡ ¢Ü ££ ¤¤ ¥¥ ¦¦ §§ ¨¨ ©© ªª «« ¬¬ ®® ¯¯ °° ±± ²² ³³ ´´ µµ ¶¶ ·· ¸Ý ¹Þ ºß »» ¼ü ½½ ¾ý ¿þ
Data.b 160,161,220,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,221,222,223,187,252,189,253,254
;///// ÀÀ Áá Ââ Ãã Ää Åå Ææ Çç Èè Éé Êê Ëë Ìì Íí Îî Ïï Ðð Ññ ÒÒ Óó Ôô Õõ Öö ×÷ Øø Ùù Úú Ûû ÜÜ ÝÝ ÞÞ ßß
Data.b 192,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,210,243,244,245,246,247,248,249,250,251,220,221,222,223
;///// àà áá ââ ãã ää åå ææ çç èè éé êê ëë ìì íí îî ïï ðð ññ òò óó ôô õõ öö ÷÷ øø ùù úú ûû üü ýý þþ ÿÿ
Data.b 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
; Table-Preset for your own tables (for importing complete CharsetTranslations you might use the tool "LUCaseWrapper" by Froggerprogger:
; Data.b 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
; Data.b 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
; Data.b 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95
; Data.b 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127
; Data.b 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159
; Data.b 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191
; Data.b 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223
; Data.b 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
EndDataSection