Article: Q297133
Product(s): Microsoft FoxPro
Version(s): 3.0,3.0b,5.0,5.0a,6.0
Operating System(s):
Keyword(s): kbvfp kbvfp300 kbvfp300b kbvfp500 kbvfp500a kbvfp500bug kbvfp500fix kbvfp600 kbXBase kb
Last Modified: 11-MAY-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual FoxPro for Windows, versions 3.0, 3.0b, 5.0, 5.0a, 6.0
-------------------------------------------------------------------------------
SYMPTOMS
========
When you use the UPPER function on strings that include high-ASCII characters,
you may see unexpected changes.
CAUSE
=====
Visual FoxPro makes characters uppercase that are considered alphabetic by the
ISALPHA function. ISALPHA is not font-dependent, so fonts that include symbol
characters appear to behave incorrectly when strings that are displayed in them
are run through the UPPER function.
RESOLUTION
==========
If you must use symbol characters in your uppercase strings, test each character
and make it uppercase individually.
lcOldFontName = _SCREEN.FontName
lnOldFontSize = _SCREEN.FontSize
_SCREEN.FontName = "FoxFont"
_SCREEN.FontSize = 9
*!* 241 is the plus/minus character.
lcMixedString = "Value is 500" + CHR(241) + "0.05%"
? lcMixedString
? UPPER(lcMixedString) && Displays box character
lcUpperString = ""
FOR i = 1 TO LEN(lcMixedString)
lcCurrChar = SUBSTR(lcMixedString, i, 1)
IF BETWEEN(lcCurrChar, "a", "z")
lcCurrChar = UPPER(lcCurrChar)
ENDif
lcUpperString = lcUpperString + lcCurrChar
ENDfor
? lcUpperString
_SCREEN.FontName = lcOldFontName
_SCREEN.FontSize = lnOldFontSize
STATUS
======
This behavior is by design.
MORE INFORMATION
================
To see all characters that are affected by UPPER, run the following code:
_SCREEN.FontName = "Lucida Sans Unicode"
CLEAR
FOR i = 1 TO 255
IF CHR(i) != UPPER(CHR(i))
? i, CHR(i), UPPER(CHR(i))
ENDif
ENDfor
NOTE: Change the FontName property to "FoxFont" to see the problem that is
described in the "Symptoms" section.
REFERENCES
==========
(c) Microsoft Corporation 2001, All Rights Reserved.
Contributions by Garrett Fitzgerald, Microsoft Corporation
Additional query words:
======================================================================
Keywords : kbvfp kbvfp300 kbvfp300b kbvfp500 kbvfp500a kbvfp500bug kbvfp500fix kbvfp600 kbXBase kbGrpDSFox kbDSupport
Technology : kbVFPsearch kbAudDeveloper kbVFP300 kbVFP300b kbVFP500 kbVFP600 kbVFP500a
Version : :3.0,3.0b,5.0,5.0a,6.0
Issue type : kbprb
=============================================================================