The information in this article applies to:
- Microsoft Visual FoxPro for Windows, version 3.0
SUMMARY
When using the Visual FoxPro TYPE() function, you must ensure that the
expression passed to the function is always be of the character type. You
can use a user-defined function (UDF) to determine the type of a variable
without trying to convert the variable to a character string. This article
shows you how to do it.
MORE INFORMATION
Step-by-Step Example
- Open a program file, and type the following function into it:
FUNCTION ALLTYPE
*
* Purpose: Determine the data type of a variable
* Syntax: m.cNewValue = ALLTYPE(<Variable Name>)
* Parms: xxx (Can be Character, Numeric, Date, or Logical)
* The variable for which the type is to be determined.
* Return: lcType: C for Character
* N for Numeric
* D for Date
* L for Logical
* Example: lcTheType=ALLTYPE(Variable)
*
PARAMETER xxx
local llType,lcType
lcTemperror=ON('ERROR')
ON ERROR llType=.f.
llType=.T.
xxx=xxx+" "
IF llType
lcType="C"
ENDIF
llType=.T.
xxx=!xxx
IF llType
lcType="L"
ENDIF
llType=.T.
xxx=xxx+1
IF llType
lcType="N"
ENDIF
llType=.T.
xxx=MONTH(xxx)
IF llType
lcType="D"
ENDIF
ON ERROR &lcTemperror
RETURN lcType
- Save and close the program file.
- In the Command window, type the following:
SET PROCEDURE TO <Program File>
x=3
? ALLTYPE(x)
- The value returned is N.
The TYPE() function may be used to obtain the same result if the variable
is placed enclosed in quotation marks. For example, the following will also
return N:
? TYPE('x')
|