1459 lines
42 KiB
Plaintext
1459 lines
42 KiB
Plaintext
/*
|
||
* $Id$
|
||
*/
|
||
|
||
/*
|
||
* The following parts are Copyright of the individual authors.
|
||
* www - http://www.harbour-project.org
|
||
*
|
||
* Copyright 1999 Jose Lalin <dezac@corevia.com>
|
||
* DESCEND() documentation
|
||
*
|
||
* Copyright 2000 Luiz Rafael Culik <culik@sl.conex.net>
|
||
* HB_OEMTOANSI() Documentation
|
||
* HB_ANSITOOEM() Documentation
|
||
* ISALPHA() Documentation
|
||
* ISDIGIT() Documentation
|
||
* ISUPPER() Documentation
|
||
* ISLOWER() Documentation
|
||
* LTRIM() Documentation
|
||
* AT() Documentation
|
||
* RAT() Documentation
|
||
* LEFT() Documentation
|
||
* RIGHT() Documentation
|
||
* SUBSTR() Documentation
|
||
* UPPER() Documentation
|
||
* LOWER() Documentation
|
||
* ASC() Documentation
|
||
* CHR() Documentation
|
||
* PADC() Documentation
|
||
* PADL() Documentation
|
||
* PADR() Documentation
|
||
* ALLTRIM() Documentation
|
||
* TRIM() Documentation
|
||
* RTRIM() Documentation
|
||
* SPACE() Documentation
|
||
* REPLICATE() Documentation
|
||
* VAL() Documentation
|
||
* TRANSFORM() Documentation
|
||
* STRTRAN() Documentation
|
||
* See doc/license.txt for licensing terms.
|
||
*
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* ISALPHA()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Checks if leftmost character in a string is an alphabetic character
|
||
* $SYNTAX$
|
||
* ISALPHA(<cString>) --> lAlpha
|
||
* $ARGUMENTS$
|
||
* <cString> Any character string
|
||
* $RETURNS$
|
||
* lAlpha Logical true (.T.) or false (.F.).
|
||
* $DESCRIPTION$
|
||
* This function return a logical true (.T.) if the first character
|
||
* in <cString> is an alphabetic character.If not, the function will
|
||
* return a logical false (.F.).
|
||
* $EXAMPLES$
|
||
* QOUT( "isalpha( 'hello' ) = ", isalpha( 'hello' ) )
|
||
* QOUT( "isalpha( '12345' ) = ", isalpha( '12345' ) )
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is CA-Clipper compliant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* ISDIGIT(),ISLOWER(),ISUPPER(),LOWER(),UPPER()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* ISDIGIT()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Checks if leftmost character is a digit character
|
||
* $SYNTAX$
|
||
* ISDIGIT(<cString>) --> lDigit
|
||
* $ARGUMENTS$
|
||
* <cString> Any character string
|
||
* $RETURNS$
|
||
* lDigit Logical true (.T.) or false (.F.).
|
||
* $DESCRIPTION$
|
||
* This function takes the caracter string <cString> and checks to
|
||
* see if the leftmost character is a digit,from 1 to 9.If so, the
|
||
* function will return a logical true (.T.);otherwise, it will
|
||
* return a logical false (.F.).
|
||
* $EXAMPLES$
|
||
* QOUT( "isdigit( '12345' ) = ", isdigit( '12345' ) )
|
||
* QOUT( "isdigit( 'abcde' ) = ", isdigit( 'abcde' ) )
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is CA-Clipper compliant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* ISALPHA(),ISLOWER(),ISUPPER(),LOWER(),UPPER()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* ISUPPER()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Checks if leftmost character is an uppercased letter.
|
||
* $SYNTAX$
|
||
* ISUPPER(<cString>) --> lUpper
|
||
* $ARGUMENTS$
|
||
* <cString> Any character string
|
||
* $RETURNS$
|
||
* lUpper Logical true (.T.) or false (.F.).
|
||
* $DESCRIPTION$
|
||
* This function takes the caracter string <cString> and checks to
|
||
* see if the leftmost character is a uppercased letter.If so, the
|
||
* function will return a logical true (.T.);otherwise, it will
|
||
* return a logical false (.F.).
|
||
* $EXAMPLES$
|
||
* QOUT( "isupper( 'Abcde' ) = ", isupper( 'Abcde' ) )
|
||
* QOUT( "isupper( 'abcde' ) = ", isupper( 'abcde' ) )
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is CA-Clipper compliant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* ISALPHA(),ISLOWER(),ISDIGIT(),LOWER(),UPPER()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* ISLOWER()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Checks if leftmost character is an lowercased letter.
|
||
* $SYNTAX$
|
||
* ISLOWER(<cString>) --> lLower
|
||
* $ARGUMENTS$
|
||
* <cString> Any character string
|
||
* $RETURNS$
|
||
* lLower Logical true (.T.) or false (.F.).
|
||
* $DESCRIPTION$
|
||
* This function takes the caracter string <cString> and checks to
|
||
* see if the leftmost character is a lowercased letter.If so, the
|
||
* function will return a logical true (.T.);otherwise, it will
|
||
* return a logical false (.F.).
|
||
* $EXAMPLES$
|
||
* QOUT( "islower( 'Abcde' ) = ", islower( 'Abcde' ) )
|
||
* QOUT( "islower( 'abcde' ) = ", islower( 'abcde' ) )
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is CA-Clipper compliant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* ISALPHA(),ISDIGIT(),ISUPPER(),LOWER(),UPPER()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* LTRIM()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Removes leading spaces from a string
|
||
* $SYNTAX$
|
||
* LTRIM(<cString>) --> <cReturn>
|
||
* $ARGUMENTS$
|
||
* <cString> Character expression with leading spaces
|
||
* $RETURNS$
|
||
* <cReturn> The same character expression with leading spaces removed
|
||
* $DESCRIPTION$
|
||
* This function trims the leading space blank
|
||
* $EXAMPLES$
|
||
* ? QOUT( LTRIM("HELLO "))
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This functions is CA-CLIPPER compatible
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* TRIM(),RTRIM(),ALLTRIM()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* AT()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Locates the position of a substring in a main string.
|
||
* $SYNTAX$
|
||
* AT(<cSearch>,<cString>) --> nPos
|
||
* $ARGUMENTS$
|
||
* <cSearch> Substring to search for
|
||
*
|
||
* <cString> Main string
|
||
* $RETURNS$
|
||
* AT() return the starting position of the first occurrence of the
|
||
* substring in the main string
|
||
* $DESCRIPTION$
|
||
* This function searches the string <cString> for the characters in
|
||
* the first string <cSearch>. If the substring is not contained within
|
||
* the second expression,the function will return 0.
|
||
* $EXAMPLES$
|
||
* QOUT( "at( 'cde', 'abcdefgfedcba' ) = '" +;
|
||
* at( 'cde', 'abcsefgfedcba' ) + "'" )
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is CA-Clipper compatible.
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* RAT()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* RAT()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Searches for a substring from the right side of a string.
|
||
* $SYNTAX$
|
||
* RAT(<cSearch>,<cString>) --> nPos
|
||
* $ARGUMENTS$
|
||
* <cSearch> Substring to search for
|
||
*
|
||
* <cString> Main string
|
||
* $RETURNS$
|
||
* RAT() return the location of beginnig position.
|
||
* $DESCRIPTION$
|
||
* This function searches througt <cString> for the first existence
|
||
* of <cSearch>.The search operation is performed from the right side
|
||
* of <cString> to the left. If the function is unable to find any
|
||
* occurence of <cSearch> in <cString>,the value of the function will be 0.
|
||
* $EXAMPLES$
|
||
* QOUT( "rat( 'cde', 'abcdefgfedcba' ) = '" +;
|
||
* rat( 'cde', 'abcsefgfedcba' ) + "'" )
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* Will not work with a search string > 64 KB on some platforms
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* AT(),SUBSTR(),RIGHT()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* LEFT()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Extract the leftmost substring of a character expression
|
||
* $SYNTAX$
|
||
* LEFT(<cString>,<nPos>) --> <cReturn>
|
||
* $ARGUMENTS$
|
||
* <cString> Main character to be parsed
|
||
*
|
||
* <nPos> Number of bytes to return beggining at the leftmost position
|
||
* $RETURNS$
|
||
* <cReturn> Substring of evaluation
|
||
* $DESCRIPTION$
|
||
* This functions returns the leftmost <nPos> characters of <cString>.
|
||
* It is equivalent to the following programing expression:
|
||
* SUBSTR(<cString>,1,<nPos>
|
||
* $EXAMPLES$
|
||
* ? QOUT(LEFT('HELLO HARBOUR',5))
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This functions is CA CLIPPER compatible
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* SUBSTR(),RIGHT(),AT(),RAT()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* RIGHT()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Extract the rightmost substring of a character expression
|
||
* $SYNTAX$
|
||
* SUBSTR(<cString>,<nPos>) --> <cReturn>
|
||
* $ARGUMENTS$
|
||
* <cString> Character expression to be parsed
|
||
*
|
||
* <nPos> Number of bytes to return beggining at the rightmost position
|
||
* $RETURNS$
|
||
* <cReturn> Substring of evaluation
|
||
* $DESCRIPTION$
|
||
* This functions returns the rightmost <nPos> characters of <cString>.
|
||
* $EXAMPLES$
|
||
* ? QOUT(RIGHT('HELLO HARBOUR',5))
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This functions is CA CLIPPER compatible
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* SUBSTR(),LEFT(),AT(),RAT()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* SUBSTR()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Returns a substring from a main string
|
||
* $SYNTAX$
|
||
* SUBSTR(<cString>,<nStart>[,<nLen>)] --> <cReturn>
|
||
* $ARGUMENTS$
|
||
* <cString> Character expression to be parsed
|
||
*
|
||
* <nStart> Start position
|
||
*
|
||
* <nLen> Number of characters to return
|
||
* $RETURNS$
|
||
* <cReturn> Substring of evaluation
|
||
* $DESCRIPTION$
|
||
* This functions returns a character string formed from <cString>,
|
||
* starting at the position of <nStart> and continuing on for a
|
||
* lenght of <nLen> characters. If <nLen> is not specified, the value
|
||
* will be all remaining characters from the position of <nStart>.
|
||
|
||
* The value of <nStart> may be negative. If it is, the direction of
|
||
* operation is reversed from a default of left-to-right to right-to-left
|
||
* for the number of characters specified in <nStart>.
|
||
* $EXAMPLES$
|
||
* FUNCTION MAIN()
|
||
* LOCAL X:=REPLICATE('ABCD',70000)
|
||
*
|
||
* ? QOUT(SUBSTR(X,65519,200)
|
||
*
|
||
* RETURN NIL
|
||
* </fixed>
|
||
* $TESTS$
|
||
* ? QOUT(SUBSTR('HELLO HARBOUR',5)
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This functions is CA CLIPPER compatible with the execption that
|
||
* CA CLIPPER will generate an error if the passed string is >65519 bytes
|
||
* and Harbour depends of plataform.
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* LEFT(),AT(),RIGHT()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* STR()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Convert a numeric expression to a character string.
|
||
* $SYNTAX$
|
||
* STR(<nNumber>, [<nLength>], [<nDecimals>]) --> cNumber
|
||
* $ARGUMENTS$
|
||
* <nNumber> is the numeric expression to be converted to a character
|
||
* string.
|
||
*
|
||
* <nLength> is the length of the character string to return, including
|
||
* decimal digits, decimal point, and sign.
|
||
*
|
||
* <nDecimals> is the number of decimal places to return.
|
||
* $RETURNS$
|
||
* STR() returns <nNumber> formatted as a character string. If the
|
||
* optional length and decimal arguments are not specified, STR()
|
||
* returns the character string according to the following rules:
|
||
*
|
||
* Results of STR() with No Optional Arguments
|
||
|
||
* <table>
|
||
* Expression Return Value Length
|
||
*
|
||
* Field Variable Field length plus decimals
|
||
* Expressions/constants Minimum of 10 digits plus decimals
|
||
* VAL() Minimum of 3 digits
|
||
* MONTH()/DAY() 3 digits
|
||
* YEAR() 5 digits
|
||
* RECNO() 7 digits
|
||
* </table>
|
||
* $DESCRIPTION$
|
||
* STR() is a numeric conversion function that converts numeric values
|
||
* to character strings. It is commonly used to concatenate numeric values
|
||
* to character strings. STR() has applications displaying numbers,
|
||
* creating codes such as part numbers from numeric values, and creating
|
||
* index keys that combine numeric and character data.
|
||
*
|
||
* STR() is like TRANSFORM(), which formats numeric values as character
|
||
* strings using a mask instead of length and decimal specifications.
|
||
*
|
||
* The inverse of STR() is VAL(), which converts character numbers to
|
||
* numerics.
|
||
*
|
||
* * If <nLength> is less than the number of whole number digits in
|
||
* <nNumber>, STR() returns asterisks instead of the number.
|
||
*
|
||
* * If <nLength> is less than the number of decimal digits
|
||
* required for the decimal portion of the returned string, Harbour
|
||
* rounds the number to the available number of decimal places.
|
||
*
|
||
* * If <nLength> is specified but <nDecimals> is omitted (no
|
||
* decimal places), the return value is rounded to an integer.
|
||
* $EXAMPLES$
|
||
* ? STR( 10, 6, 2 ) // " 10.00"
|
||
* ? STR( -10, 8, 2 ) // " -10.00"
|
||
* </fixed>
|
||
* $TESTS$
|
||
* see the regression test suit for comprehensive tests.
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* CA-Clipper compatible.
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* STRZERO(),TRANSFORM(),VAL()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* STRZERO()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Convert a numeric expression to a character string, zero padded.
|
||
* $SYNTAX$
|
||
* STRZERO(<nNumber>, [<nLength>], [<nDecimals>]) --> cNumber
|
||
* $ARGUMENTS$
|
||
* <nNumber> is the numeric expression to be converted to a character
|
||
* string.
|
||
*
|
||
* <nLength> is the length of the character string to return, including
|
||
* decimal digits, decimal point, and sign.
|
||
*
|
||
* <nDecimals> is the number of decimal places to return.
|
||
* $RETURNS$
|
||
* STRZERO() returns <nNumber> formatted as a character string. If the
|
||
* optional length and decimal arguments are not specified, STRZERO()
|
||
* returns the character string according to the following rules:
|
||
*
|
||
* Results of STRZERO() with No Optional Arguments
|
||
*
|
||
* <table>
|
||
* Expression Return Value Length
|
||
*
|
||
* Field Variable Field length plus decimals
|
||
* Expressions/constants Minimum of 10 digits plus decimals
|
||
* VAL() Minimum of 3 digits
|
||
* MONTH()/DAY() 3 digits
|
||
* YEAR() 5 digits
|
||
* RECNO() 7 digits
|
||
* </table>
|
||
* $DESCRIPTION$
|
||
* STRZERO() is a numeric conversion function that converts numeric values
|
||
* to character strings. It is commonly used to concatenate numeric values
|
||
* to character strings. STRZERO() has applications displaying numbers,
|
||
* creating codes such as part numbers from numeric values, and creating
|
||
* index keys that combine numeric and character data.
|
||
*
|
||
* STRZERO() is like TRANSFORM(), which formats numeric values as character
|
||
* strings using a mask instead of length and decimal specifications.
|
||
*
|
||
* The inverse of STRZERO() is VAL(), which converts character numbers to
|
||
* numerics.
|
||
*
|
||
* * If <nLength> is less than the number of whole number digits in
|
||
* <nNumber>, STR() returns asterisks instead of the number.
|
||
*
|
||
* * If <nLength> is less than the number of decimal digits
|
||
* required for the decimal portion of the returned string, Harbour
|
||
* rounds the number to the available number of decimal places.
|
||
*
|
||
* * If <nLength> is specified but <nDecimals> is omitted (no
|
||
* decimal places), the return value is rounded to an integer.
|
||
* $EXAMPLES$
|
||
* ? STRZERO( 10, 6, 2 ) // "010.00"
|
||
* ? STRZERO( -10, 8, 2 ) // "-0010.00"
|
||
* </fixed>
|
||
* $TESTS$
|
||
* see the regression test suit for comprehensive tests.
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* CA-Clipper compatible (it was not mentioned in the docs though).
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* STR()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* HB_VALTOSTR()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Converts any scalar type to a string.
|
||
* $SYNTAX$
|
||
* HB_VALTOSTR( <xValue> ) --> cString
|
||
* $ARGUMENTS$
|
||
* <xValue> is any scalar argument.
|
||
* $RETURNS$
|
||
* <cString> A string representation of <xValue> using default conversions.
|
||
* $DESCRIPTION$
|
||
* HB_VALTOSTR can be used to convert any scalar value to a string.
|
||
* $EXAMPLES$
|
||
* ? HB_VALTOSTR( 4 )
|
||
* ? HB_VALTOSTR( "String" )
|
||
* </fixed>
|
||
* $TESTS$
|
||
* ? HB_VALTOSTR( 4 ) == " 4"
|
||
* ? HB_VALTOSTR( 4.0 / 2 ) == " 2.00"
|
||
* ? HB_VALTOSTR( "String" ) == "String"
|
||
* ? HB_VALTOSTR( CTOD( "01/01/2001" ) ) == "01/01/01"
|
||
* ? HB_VALTOSTR( NIL ) == "NIL"
|
||
* ? HB_VALTOSTR( .F. ) == ".F."
|
||
* ? HB_VALTOSTR( .T. ) == ".T."
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* HB_VALTOSTR() is a Harbour enhancement.
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* STR()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* LEN()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Returns size of a string or size of an array.
|
||
* $SYNTAX$
|
||
* LEN( <cString> | <aArray> ) --> <nLength>
|
||
* $ARGUMENTS$
|
||
* <acString> is a character string or the array to check.
|
||
* $RETURNS$
|
||
* The length of the string or the number of elements that contains
|
||
* an array.
|
||
* $DESCRIPTION$
|
||
* This function returns the string length or the size of an array. If
|
||
* it is used with a multidimensional array it returns the size of the
|
||
* first dimension.
|
||
* $EXAMPLES$
|
||
* ? Len( "Harbour" ) --> 7
|
||
* ? Len( { "One", "Two" } ) --> 2
|
||
* </fixed>
|
||
* $TESTS$
|
||
* function Test()
|
||
* LOCAL cName := ""
|
||
* ACCEPT "Enter your name: " TO cName
|
||
* ? Len( cName )
|
||
* return nil
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* LEN() is fully CA-Clipper compliant.
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* EMPTY(),RTRIM(),LTRIM(),AADD(),ASIZE()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* EMPTY()
|
||
* $CATEGORY$
|
||
* Conversion
|
||
* $ONELINER$
|
||
* Checks if the passed argument is empty.
|
||
* $SYNTAX$
|
||
* EMPTY( <xExp> ) --> <lIsEmpty>
|
||
* $ARGUMENTS$
|
||
* <xExp> is any valid expression.
|
||
* $RETURNS$
|
||
* A logical value. It is true (.T.) if the passed argument is empty
|
||
* otherwise it is false (.F.).
|
||
* $DESCRIPTION$
|
||
* This function checks if an expression has empty value and returns a
|
||
* logical indicating whether it the expression is empty or not.
|
||
* $EXAMPLES$
|
||
* ? Empty( "I'm not empty" )
|
||
* </fixed>
|
||
* $TESTS$
|
||
* function Test()
|
||
* ? Empty( 1 ) --> .f.
|
||
* ? Empty( Date() ) --> .f.
|
||
* ? Empty( .f. ) --> .t.
|
||
* return nil
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* EMPTY() is fully CA-Clipper compliant.
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* LEN()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* DESCEND()
|
||
* $CATEGORY$
|
||
* Conversion
|
||
* $ONELINER$
|
||
* Inverts an expression of string, logical, date or numeric type.
|
||
* $SYNTAX$
|
||
* DESCEND( <xExp> ) --> <xExpInverted>
|
||
* $ARGUMENTS$
|
||
* <xExp> is any valid expression.
|
||
* $RETURNS$
|
||
* Inverted value of the same type as passed.
|
||
* $DESCRIPTION$
|
||
* This function converts an expression in his inverted form. It is
|
||
* useful to build descending indexes.
|
||
* $EXAMPLES$
|
||
* // Seek for Smith in a descending index
|
||
* SEEK DESCEND( "SMITH" )
|
||
/ </fixed>
|
||
* $TESTS$
|
||
* DATA->( DBSEEK( DESCEND( "SMITH" ) ) )
|
||
* will seek "SMITH" into a descending index.
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* DESCEND() is fully CA-Clipper compliant.
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* INDEX,SEEK
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* HB_ANSITOOEM()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Convert a windows Character to a Dos based character
|
||
* $SYNTAX$
|
||
* HB_ANSITOOEM(<cString>) -> cDosString
|
||
* $ARGUMENTS$
|
||
* <cString> Windows ansi string to convert to DOS oem String
|
||
* $RETURNS$
|
||
* <cDosString> Dos based string
|
||
* $DESCRIPTION$
|
||
* This function converts each character in <cString> to the corresponding
|
||
* character in the MS-DOS (OEM) character set.The character expression
|
||
* <cString> should contain characters from the ANSI character set.
|
||
* If a character in <cString> doesn't have a MS-DOS equivalent, the
|
||
* character is converted to a similar MS-DOS character.
|
||
* $EXAMPLES$
|
||
* ? HB_OEMTOANSI("Harbour")
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is a Harbour extension
|
||
* $PLATFORMS$
|
||
* This functions work only on Windows Plataform
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* HB_OEMTOANSI()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* HB_OEMTOANSI()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Convert a DOS(OEM) Character to a WINDOWS (ANSI) based character
|
||
* $SYNTAX$
|
||
* HB_OEMTOANSI(<cString>) -> cDosString
|
||
* $ARGUMENTS$
|
||
* <cString> DOS (OEM) string to convert to WINDOWS (ANSI) String
|
||
* $RETURNS$
|
||
* <cDosString> WINDOWS based string
|
||
* $DESCRIPTION$
|
||
* This function converts each character in <cString> to the corresponding
|
||
* character in the Windows (ANSI) character set.The character expression
|
||
* <cString> should contain characters from the OEM character set.
|
||
* If a character in <cString> doesn't have a ANSI equivalent, the
|
||
* character is remais the same.
|
||
* $EXAMPLES$
|
||
* ? HB_OEMTOANSI("Harbour")
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is a Harbour extension
|
||
* $PLATFORMS$
|
||
* This functions work only on Windows Plataform
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* HB_ANSITOOEM()
|
||
* $END$
|
||
*/
|
||
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* LOWER()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Universally lowercases a character string expression.
|
||
* $SYNTAX$
|
||
* LOWER( <cString> ) --> cLowerString
|
||
* $ARGUMENTS$
|
||
* <cString> Any character expression.
|
||
* $RETURNS$
|
||
* <cLowerString> Lowercased value of <cString>
|
||
* $DESCRIPTION$
|
||
* This function converts any character expression passes as <cString>
|
||
* to its lowercased representation.Any nonalphabetic character withing
|
||
* <cString> will remain unchanged.
|
||
* $EXAMPLES$
|
||
* ? Lower("HARBOUR")
|
||
* ? Lower("Hello All")
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is CA-Clipper compatible
|
||
* $PLATFORMS$
|
||
* ALL
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* UPPER(),ISLOWER(),ISUPPER()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* UPPER()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Converts a character expression to uppercase format
|
||
* $SYNTAX$
|
||
* UPPER( <cString> ) --> cUpperString
|
||
* $ARGUMENTS$
|
||
* <cString> Any character expression.
|
||
* $RETURNS$
|
||
* <cUpperString> Uppercased value of <cString>
|
||
* $DESCRIPTION$
|
||
* This function converts all alpha characters in <cString> to upper
|
||
* case values and returns that formatted character expression.
|
||
* $EXAMPLES$
|
||
* ? UPPER("harbour")
|
||
* ? UPPER("Harbour")
|
||
* </fixed>
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is CA-Clipper compatible
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* LOWER(),ISUPPER(),ISLOWER()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* CHR()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Converts an ASCII value to it character value
|
||
* $SYNTAX$
|
||
* CHR(<nAsciiNum>) --> cReturn
|
||
* $ARGUMENTS$
|
||
* <nAsciiNum> Any ASCII character code.
|
||
* $RETURNS$
|
||
* <cReturn> Character expression of that ASCII value
|
||
* $DESCRIPTION$
|
||
* This function returns the ASCII character code for <nAsciiNum>.The
|
||
* number expressed must be an interger value within the range of 0 to
|
||
* 255 inclusive.The CHR() function will send the character returned
|
||
* to whatever device is presently set.
|
||
*
|
||
* The CHR() function may be used for printing special codes as well
|
||
* as normal and graphics character codes.
|
||
* $EXAMPLES$
|
||
* ? CHR(32)
|
||
* ? chr(215)
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compliant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* ASC(),INKEY()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* ASC()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Returns the ASCII value of a character
|
||
* $SYNTAX$
|
||
* ASC( <cCharacter> ) --> nAscNumber
|
||
* $ARGUMENTS$
|
||
* <cCharacter> Any character expression
|
||
* $RETURNS$
|
||
* <nAscNumber> ASCII value
|
||
* $DESCRIPTION$
|
||
* This function return the ASCII value of the leftmost character of
|
||
* any character expression passed as <cCharacter>.
|
||
* $EXAMPLES$
|
||
* ? ASC("A")
|
||
* ? ASC("<22>")
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compliant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* CHR()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* PADC()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Centers an expression for a given width
|
||
* $SYNTAX$
|
||
* PADC(<xVal>,<nWidth>,<cFill>) --> cString
|
||
* $ARGUMENTS$
|
||
* <xVal> An number,Character or date to pad
|
||
*
|
||
* <nWidth> Width of output string
|
||
*
|
||
* <cFill> Character to fill in the string
|
||
* $RETURNS$
|
||
* <cString> The Center string of <xVal>
|
||
* $DESCRIPTION$
|
||
* This function takes an date,number,or character expression <xVal>
|
||
* and attempt to center the expression within a string of a given width
|
||
* expressed as <nWidth>.The default character used to pad either side
|
||
* of <xVal> will be an blank space;however,this character may be
|
||
* explicitly specified the value of <cFill>.
|
||
*
|
||
* If the lenght of <xVal> is longer then <nWidth>,this function will
|
||
* truncate the string <xVal> from the leftmost side to the lenght of
|
||
* <nWidth>.
|
||
* $EXAMPLES$
|
||
* ? PADC('Harbour',20)
|
||
* ? PADC(34.5142,20)
|
||
* ? PADC(Date(),35)
|
||
* $TESTS$
|
||
* See Examples
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compilant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* ALLTRIM(),PADL(),PADR()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* PADL()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Left-justifies an expression for a given width
|
||
* $SYNTAX$
|
||
* PADL(<xVal>,<nWidth>,<cFill>) --> cString
|
||
* $ARGUMENTS$
|
||
* <xVal> An number,Character or date to pad
|
||
*
|
||
* <nWidth> Width of output string
|
||
*
|
||
* <cFill> Character to fill in the string
|
||
* $RETURNS$
|
||
* <cString> The left-justifies string of <xVal>
|
||
* $DESCRIPTION$
|
||
* This function takes an date,number,or character expression <xVal>
|
||
* and attempt to left-justify it within a string of a given width
|
||
* expressed as <nWidth>.The default character used to pad left side
|
||
* of <xVal> will be an blank space;however,this character may be
|
||
* explicitly specified the value of <cFill>.
|
||
*
|
||
* If the lenght of <xVal> is longer then <nWidth>,this function will
|
||
* truncate the string <xVal> from the leftmost side to the lenght of
|
||
* <nWidth>.
|
||
* $EXAMPLES$
|
||
* ? PADC('Harbour',20)
|
||
* ? PADC(34.5142,20)
|
||
* ? PADC(Date(),35)
|
||
* $TESTS$
|
||
* See examples
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compilant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* ALLTRIM(),PADC(),PADR()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* PADR()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Right-justifies an expression for a given width
|
||
* $SYNTAX$
|
||
* PADR(<xVal>,<nWidth>,<cFill>) --> cString
|
||
* $ARGUMENTS$
|
||
* <xVal> An number,Character or date to pad
|
||
*
|
||
* <nWidth> Width of output string
|
||
*
|
||
* <cFill> Character to fill in the string
|
||
* $RETURNS$
|
||
* <cString> The right-justifies string of <xVal>
|
||
* $DESCRIPTION$
|
||
* This function takes an date,number,or character expression <xVal>
|
||
* and attempt to right-justify it within a string of a given width
|
||
* expressed as <nWidth>.The default character used to pad right side
|
||
* of <xVal> will be an blank space;however,this character may be
|
||
* explicitly specified the value of <cFill>.
|
||
*
|
||
* If the lenght of <xVal> is longer then <nWidth>,this function will
|
||
* truncate the string <xVal> from the leftmost side to the lenght of
|
||
* <nWidth>.
|
||
* $EXAMPLES$
|
||
* ? PADC('Harbour',20)
|
||
* ? PADC(34.5142,20)
|
||
* ? PADC(Date(),35)
|
||
* $TESTS$
|
||
* See examples
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compilant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* ALLTRIM(),PADC(),PADL()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* ALLTRIM()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Removes leading and trailing blank spaces from a string
|
||
* $SYNTAX$
|
||
* ALLTRIM( <cString> ) --> cExpression
|
||
* $ARGUMENTS$
|
||
* <cString> Any character string
|
||
* $RETURNS$
|
||
* <cExpression> An string will all blank spaces removed from <cString>
|
||
* $DESCRIPTION$
|
||
* This function returns the string <cExpression> will all leading and
|
||
* trailing blank spaces removed.
|
||
* $EXAMPLES$
|
||
* ? ALLTRIM("HELLO HARBOUR")
|
||
* ? ALLTRIM(" HELLO HARBOUR")
|
||
* ? ALLTRIM("HELLO HARBOUR ")
|
||
* ? ALLTRIM(" HELLO HARBOUR ")
|
||
* $TESTS$
|
||
* See Examples
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compilant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* LTRIM(),RTRIM(),TRIM()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* RTRIM()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Remove trailing spaces from a string.
|
||
* $SYNTAX$
|
||
* RTRIM(<cExpression>) --> cString
|
||
* $ARGUMENTS$
|
||
* <cExpression> Any character expression
|
||
* $RETURNS$
|
||
* <cString> A formated string with out any blank spaced.
|
||
* $DESCRIPTION$
|
||
* This function returns the value of <cString> with any trailing blank
|
||
* removed.
|
||
*
|
||
* This function is indentical to RTRIM() and the opposite of LTRIM().
|
||
* Together with LTRIM(),this function equated to the ALLTRIM()
|
||
* function.
|
||
* $EXAMPLES$
|
||
* ? RTrim("HELLO") // "HELLO"
|
||
* ? RTrim( "" ) // ""
|
||
* ? RTrim( "UA " ) // "UA"
|
||
* ? RTrim( " UA" ) // " UA"
|
||
* $TESTS$
|
||
* See Examples
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compilant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* ALLTRIM(),LTRIM(),TRIM()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* TRIM()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Remove trailing spaces from a string.
|
||
* $SYNTAX$
|
||
* TRIM(<cExpression>) --> cString
|
||
* $ARGUMENTS$
|
||
* <cExpression> Any character expression
|
||
* $RETURNS$
|
||
* <cString> A formated string with out any blank spaced.
|
||
* $DESCRIPTION$
|
||
* This function returns the value of <cString> with any trailing blank
|
||
* removed.
|
||
*
|
||
* This function is indentical to RTRIM() and the opposite of LTRIM().
|
||
* Together with LTRIM(),this function equated to the ALLTRIM()
|
||
* function.
|
||
* $EXAMPLES$
|
||
* ? Trim("HELLO") // "HELLO"
|
||
* ? Trim( "" ) // ""
|
||
* ? Trim( "UA " ) // "UA"
|
||
* ? Trim( " UA" ) // " UA"
|
||
* $TESTS$
|
||
* See Examples
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compilant
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* RTRIM(),LTRIM(),ALLTRIM()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* REPLICATE()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Repeats a single character expression
|
||
* $SYNTAX$
|
||
* REPLICATE(<cString>,<nSize>) --> cReplicateString
|
||
* $ARGUMENTS$
|
||
* <cString> Character string to be replicated
|
||
*
|
||
* <nSize> Number of times to replicate <cString>
|
||
* $RETURNS$
|
||
* <cReplicateString> A character expression containg the <cString>
|
||
* fill character.
|
||
* $DESCRIPTION$
|
||
* This function returns a string composed of <nSize> repetitions of
|
||
* <cString>.The lenght of the character string returned by this
|
||
* function is limited to the memory avaliable.
|
||
*
|
||
* A value of 0 for <nSize> will return a NULL string.
|
||
* $EXAMPLES$
|
||
* ? Replicate('a',10) // aaaaaaaaaa
|
||
* ? Replicate('b',100000)
|
||
* $TESTS$
|
||
* See Examples
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compliant in all aspects, with the
|
||
* exception don't have the Clipper 64Kb string length.
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* SPACE(),PADC(),PADL(),PADR()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* SPACE()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Returns a string of blank spaces
|
||
* $SYNTAX$
|
||
* SPACE( <nSize> ) --> cString
|
||
* $ARGUMENTS$
|
||
* <nSize> The lenght of the string
|
||
* $RETURNS$
|
||
* <cString> An string containing blank spaces
|
||
* $DESCRIPTION$
|
||
* This function returns a string consisting of <nSize> blank spaces. If
|
||
* the value of <nSize> is 0,a NULL string will be returned.
|
||
*
|
||
* This function is useful to declare the lenght of a character memory
|
||
* variable.
|
||
* $EXAMPLES$
|
||
* FUNC MAIN
|
||
* LOCAL cBigString
|
||
* LOCAL cFirst
|
||
* LOCAL cString := Space(20) //Create an characte memory variable
|
||
* // with lenght 20
|
||
* ? len(cString) // 20
|
||
* cBigString:=space(100000) // create a memory variable with 100000
|
||
* // blank spaces
|
||
* ? len(cBigString)
|
||
* Use Tests New
|
||
* cFirst:= makeempty(1)
|
||
* ? len(cFirst)
|
||
* Return Nil
|
||
*
|
||
* Function MakeEmpty(xField)
|
||
* LOCAL nRecord
|
||
* LOCAL xRetValue
|
||
*
|
||
* If !empty(alias())
|
||
* nRecord:=recno()
|
||
* dbgoto(0)
|
||
* if valtype(xField)=="C"
|
||
* xField:= ascan(dbstruct(),{|aFields| aFields[1]==upper(xfield)})
|
||
* else
|
||
* default xField to 0
|
||
* if xField < 1 .or. xField>fcount()
|
||
* xfield:=0
|
||
* endif
|
||
* endif
|
||
* if !(xfield ==0)
|
||
* xRetvalue:=fieldget(xfield)
|
||
* endif
|
||
* dbgoto(nrecord)
|
||
* endif
|
||
* return( xRetvalue)
|
||
* $TESTS$
|
||
* See examples
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compliant in all aspects, with the
|
||
* exception don't have the Clipper 64Kb string length.
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is Rtl
|
||
* $SEEALSO$
|
||
* PADC(),PADL(),PADR(),REPLICATE()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* VAL()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Convert a number from a character type to numeric
|
||
* $SYNTAX$
|
||
* VAL( <cNumber> ) --> nNumber
|
||
* $ARGUMENTS$
|
||
* <cNumber> Any valid character string of numbers.
|
||
* $RETURNS$
|
||
* <nNumber> The numeric value of <cNumber>
|
||
* $DESCRIPTION$
|
||
* This function converts any number previosly defined as an character
|
||
* expression <cNumber> into a numeric expression.
|
||
*
|
||
* This functions is the oppose of the STR() function.
|
||
* $EXAMPLES$
|
||
* ? VAL('31421') // 31421
|
||
* $TESTS$
|
||
* See regression test
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is Ca-Clipper compatible
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is RTL
|
||
* $SEEALSO$
|
||
* STR(),TRANSFORM()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* STRTRAN()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Translate substring valuw with a main string
|
||
* $SYNTAX$
|
||
* STRTRAN( <cString>, <cLocString>, <cRepString>, <nPos>, <nOccurences> ) --> cReturn
|
||
* $ARGUMENTS$
|
||
* <cString> The main string to search
|
||
*
|
||
* <cLocString> The string to locate in the main string
|
||
*
|
||
* <cRepString> The string to replace the <cLocString>
|
||
*
|
||
* <nPos> The first occurence to be replaced
|
||
*
|
||
* <nOccurences> Number of occurence to replace
|
||
* $RETURNS$
|
||
* <cReturn> Formated string
|
||
* $DESCRIPTION$
|
||
* This function searches for any occurence of <cLocString> in <cString>
|
||
* and replacesit with <cRepString>.If <cRepString> is not specified, a
|
||
* NULL byte will replace <cLocString>.
|
||
*
|
||
* If <nPos> is used,its value defines the first occurence to be
|
||
* replaced.The default value is 1.Additionally,if used,the value of
|
||
* <nOccurences> tell the function how many occurrences of <cLocString>
|
||
* in <cString> are to the replaced.The default of <nOccurences> is
|
||
* all occurrences.
|
||
* $EXAMPLES$
|
||
* ? StrTran("Harbour Power"," "," ") // Harbour Power
|
||
* ? StrTran("Harbour Power The Future of xBase"," "," ",,2) // Harbour Power The future of xBase
|
||
* $TESTS$
|
||
* See regression test
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* Will not work with a search string of > 64 KB on some platforms
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Libraty is rtl
|
||
* $SEEALSO$
|
||
* SUBSTR(),AT()
|
||
* $END$
|
||
*/
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* TRANSFORM()
|
||
* $CATEGORY$
|
||
* Strings
|
||
* $ONELINER$
|
||
* Formats a value based on a specific picture template.
|
||
* $SYNTAX$
|
||
* TRANSFORM( <xExpression>, <cTemplate> ) --> cFormated
|
||
* $ARGUMENTS$
|
||
* <xExpression> Any expression to be formated.
|
||
*
|
||
* <cTemplate> Character string with picture template
|
||
* $RETURNS$
|
||
* <cFormated> An formatted expression in character format
|
||
* $DESCRIPTION$
|
||
* This function returns <xExpression> in the format of the picture
|
||
* expression passed to the function as <cTemplate>.
|
||
*
|
||
* Their are two components that can make up <cTemplate> : a function
|
||
* string and a template string.Function strings are those functions
|
||
* that globally tell what the format of <xExpression> should be.These
|
||
* functions are represented by a single character precede by the
|
||
* @ symbol.
|
||
*
|
||
* There are a couple of rules to follow when using function strings
|
||
* and template strings:
|
||
*
|
||
* - First, a single space must fall between the function template
|
||
* and the template string if they are used in conjunction with
|
||
* one another.
|
||
*
|
||
* - Second,if both components make up the value of <cTemplate>,the
|
||
* function string must precede the template string.Otherwise,the
|
||
* function string may appear with out the template string and
|
||
* vice versa.
|
||
*
|
||
* The table below shows the possible function strings avaliable with
|
||
* the TRANSFORM() function.
|
||
*
|
||
* <table>
|
||
* @B Left justify the string within the format.
|
||
* @C Issue a CR after format is numbers are positive.
|
||
* @D Put dates in SET DATE format.
|
||
* @E Put dates in BRITISH format.
|
||
* @L Make a zero padded string out of the number.
|
||
* @R Insert nontemplate characters.
|
||
* @X Issue a DB after format is numbers are negative.
|
||
* @Z Display any zero as blank spaces.
|
||
* @( Quotes around negative numbers
|
||
* @! Convert alpha characters to uppercased format.
|
||
* </table>
|
||
*
|
||
* The second part of <cTemplate> consists of the format string.Each
|
||
* character in the string may be formated based on using the follow
|
||
* characters as template markers for the string.
|
||
*
|
||
* <table>
|
||
* A,N,X,9,# Any data type
|
||
* L Shows logical as "T" or "F"
|
||
* Y Shows logical as "Y" or "N"
|
||
* ! Convert to uppercase
|
||
* $ Dolar sing in place of leading spaces in numeric expression
|
||
* * Asterisks in place of leading spaces in numeric expression
|
||
* , Commas position
|
||
* . Decimal point position
|
||
* </table>
|
||
* $EXAMPLES$
|
||
* local cString := 'This is harbour'
|
||
* local nNumber := 9923.34
|
||
* local nNumber1 := -95842.00
|
||
* Local lValue := .T.
|
||
* Local dDate := DATE()
|
||
* ? 'working with String'
|
||
* ? "Current String is" ,cString
|
||
* ? "All uppercased",transform(cString,"@!")
|
||
* ? "Date is",ddate
|
||
* ? "Date is ",transform(ddate,"@D")
|
||
* ? Transform( nNumber , "@L 99999999" ) // , "009923.34"
|
||
* ? Transform( 0 , "@L 9999" ) // "0000"
|
||
*
|
||
* $TESTS$
|
||
* See regression Test
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* The @L function template is a FOXPRO/Xbase Extension
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library is rtl
|
||
* $SEEALSO$
|
||
* @...SAY,DEVOUTPICT()
|
||
* $END$
|
||
*/
|