Shane --
> There is a problem with this method. If tcVariable = "5" or tcVariable = ".T." TYPE(tcVariable) returns N and L instead of U.
Were I using the routine, I'd want to know the difference between a value and a variable embedded in a variable. Perhaps this isn't your requirement.
Would it help to modify as follows? Then you'd pass the value of the underlying value through.
> lcType = TYPE ("tcVariable")
> IF lcType = "C"
> IF TYPE (tcVariable) <> "U"
> lcType = TYPE (tcVariable)
> ENDIF
> ENDIF
If doesn't hit the mark, let us know what your specific requirements are.
Enjoy!
Jay