How to Determine the Variable Type

Last reviewed: November 20, 1995
Article ID: Q139863
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

  1. 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
    
    

  2. Save and close the program file.

  3. In the Command window, type the following:

    SET PROCEDURE TO <Program File> x=3 ? ALLTYPE(x)

  4. 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')


Additional reference words: 3.00 VFoxWin
KBCategory: kbprg kbhowto kbcode
KBSubcategory: FxprgGeneral


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: November 20, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.