Files
harbour-core/harbour/doc/en/string.txt
2000-03-04 11:24:29 +00:00

783 lines
23 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
*
* 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' ) )
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* This function is CA-Clipper compliant
* $PLATFORMS$
* $FILES$
* $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' ) )
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* This function is CA-Clipper compliant
* $PLATFORMS$
* $FILES$
* $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' ) )
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* This function is CA-Clipper compliant
* $PLATFORMS$
* $FILES$
* $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' ) )
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* This function is CA-Clipper compliant
* $PLATFORMS$
* $FILES$
* $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 blanl
* $EXAMPLES$
* ? QOUT( LTRIM("HELLO "))
* $TESTS$
*
* $STATUS$
* R
* $COMPLIANCE$
* This functions is CA-CLIPPER compatible
* $PLATFORMS$
*
* $FILES$
*
* $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' ) + "'" )
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* This function is CA-Clipper compatible.
* $PLATFORMS$
* $FILES$
* $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' ) + "'" )
* $TESTS$
*
* $STATUS$
* R
* $COMPLIANCE$
* Will not work with a search string > 64 KB on some platforms
* $PLATFORMS$
* $FILES$
* $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))
* $TESTS$
*
* $STATUS$
* R
* $COMPLIANCE$
* This functions is CA CLIPPER compatible
* $PLATFORMS$
*
* $FILES$
*
* $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))
* $TESTS$
*
* $STATUS$
* R
* $COMPLIANCE$
* This functions is CA CLIPPER compatible
* $PLATFORMS$
*
* $FILES$
*
* $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
* $TESTS$
* ? QOUT(SUBSTR('HELLO HARBOUR',5)
* $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$
*
* $FILES$
*
* $SEEALSO$
* LEFT(),AT(),RIGHT()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* STR()
* $CATEGORY$
* Run-time Library, 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
* ---------------------------------------------------------------
* 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
* ---------------------------------------------------------------
* $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"
* $TESTS$
* see the regression test suit for comprehensive tests.
* $STATUS$
* R
* $COMPLIANCE$
* CA-Clipper compatible.
* $SEEALSO$
* STRZERO(),VAL()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* STRZERO()
* $CATEGORY$
* Run-time Library, 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
* ---------------------------------------------------------------
* 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
* ---------------------------------------------------------------
* $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"
* $TESTS$
* see the regression test suit for comprehensive tests.
* $STATUS$
* R
* $COMPLIANCE$
* CA-Clipper compatible (it was not mentioned in the docs though).
* $SEEALSO$
* STR(),VAL()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* HB_VALTOSTR()
* $CATEGORY$
* Strings
* $ONELINER$
* Converts any scalar type to a string.
* $SYNTAX$
* HB_VALTOSTR( <xValue> )
* $ARGUMENTS$
* <xValue> is any scalar argument.
* $RETURNS$
* 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" )
* $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."
* $STATUS$
* R
* $COMPLIANCE$
* HB_VALTOSTR() is a Harbour enhancement.
* $SEEALSO$
* STR(),VAL()
* $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
* $TESTS$
* function Test()
* LOCAL cName := ""
* ACCEPT "Enter your name: " TO cName
* ? Len( cName )
* return nil
* $STATUS$
* R
* $COMPLIANCE$
* LEN() is fully CA-Clipper compliant.
* $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" )
* $TESTS$
* function Test()
* ? Empty( 1 ) --> .f.
* ? Empty( Date() ) --> .f.
* ? Empty( .f. ) --> .t.
* return nil
* $STATUS$
* R
* $COMPLIANCE$
* EMPTY() is fully CA-Clipper compliant.
* $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" )
* $TESTS$
* DATA->( DBSEEK( DESCEND( "SMITH" ) ) )
* will seek "SMITH" into a descending index.
* $STATUS$
* R
* $COMPLIANCE$
* DESCEND() is fully CA-Clipper compliant.
* $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")
* $TESTS$
*
* $STATUS$
* R
* $COMPLIANCE$
* This function is a Harbour extension
* $PLATFORMS$
* This functions work only on Windows Plataform
* $FILES$
*
* $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")
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* This function is a Harbour extension
* $PLATFORMS$
* This functions work only on Windows Plataform
* $FILES$
*
* $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")
* $STATUS$
* R
* $COMPLIANCE$
* This function is CA-Clipper compatible
* $PLATFORMS$
* ALL
* $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")
* $STATUS$
* R
* $COMPLIANCE$
* This function is CA-Clipper compatible
* $PLATFORMS$
* All
* $SEEALSO$
* LOWER(),ISUPPER(),ISLOWER()
* $END$
*/