Left-most position of an uppercase letter in a string
POSUPPER( <cString>, [<lMode>], [<nIgnore>] ) -> nPosition
<cString> Designates the string that is searched.
<lMode> Designates how the function searches for the first upper case, alphabetic character. The default value (.F.) searches for the first alphabetic character that would be changed by the Harbour function LOWER().
<nIgnore> Designates the number of characters at the beginning of the character string that are excluded from the search. The default value excludes none (0).
The value returned corresponds to the position of the character located. When no matching character is found, the function returns 0.
Starting from the beginning of the string, POSUPPER() searches for the first upper case, alphabetic character in the <cString> that corresponds to the first character that would be changed by the Harbour LOWER() function. If <lMode> is .T., the function searches for the first non- alphabetic character that would not be changed by LOWER(). The <nIgnore> parameter can exclude a specific number of characters at the beginning of <cString>.
. Characters located when the <lMode> parameter is .T. are not necessarily lower case, alphabetic characters. . The function works in conjunction with the NATION module because different languages use different characters to represent their alphabets.
cString := "123abcUABC" ? POSUPPER(cString) // Result: 7 ? POSUPPER(cString, .T.) // Result: 1 ? POSUPPER(cString, .F., 7) // Result: 8
POSUPPER() is compatible with CT3’s POSUPPER().
Source is pos1.c, library is libct.
POSALPHA(), POSLOWER(), POSRANGE()