热情软件屋

 

VFP6如何检测内存变量是否存在


编号:QA002214
建立日期: 1999年12月10日 最后修改日期:2002年2月21日
所属类别:

计然:
    我在写一段小程序,希望允许运行时自由设定内存变量,借此传递数据。请问如何在调用此变量时检测内存变量是否已经被赋值或已经存在?

回答:

    摘自新闻组:
    type()函数判断是否存在,是否已赋值就不能了,因为每个变量在创建时都会被赋一个初值的。
    isnull()判断表达式是否NULL。
    M$的标准写法:
    IF type('myExp') = "U" or !isnull(myExp)
     RETURN .f.
    ENDIF
    
    Gaphy的意见:
    FP6 中可以使用 VARTYPE() 函数
    ? VARTYPE(_xxx)
    _a=""
    _b="ABCDE"
    _c=12.34
    _d={^2002-01-01}
    _e=.Null.
    ? VARTYPE(_a)
    ? VARTYPE(_b)
    ? VARTYPE(_c)
    ? VARTYPE(_d)
    ? VARTYPE(_e)
    以下摘自《Vfp 6.0 语言参考手册》
    VARTYPE() 函数
    返回一个表达式的数据类型。
    
    语法
    VARTYPE(eExpression[,lNullDataType])
    
    返值类型 字符型
    
    参数描述
     eExpression 指定要返回数据类型的表达式。
     VARTYPE()返回单个的字符,表明该表达式的数据类型。
     下表列出了VARTYPE()返回的每种数据类型对应的字符:
     返回的字符 数据类型
     -----------------------------------------------
     C 字符型或备注型
     N 数值型、整型、浮点型或双精度型
     Y 货币型
     L 逻辑型
     O 对象
     G 通用型
     D 日期型
     T 日期时间型
     X Null
     U 未知
     -----------------------------------------------
     注意如果 eExpression 是一个数组,则返回该数组第一个值的数值类型。
    
     lNullDataType 指定当 eExpression 包含 null 值时,VARTYPE()是否返回它的数据类型。
     如果 lNullDataType为“真”(.T.),则 VARTYPE() 返回 eExpression 的数据类型。
     如果 lNullDataType为“假”(.F.)或省略,则VARTYPE()返回'X',表明 eExpression 包含 null 值。
    
    说明: VARTYPE() 类似于 TYPE() 函数,但是VARTYPE()更快,而且表达式外面不需要引号。
     如果指定的变量、字段、对象或对象属性不存在,VARTYPE()将返回 "U",
     如果当前没有活动的表单,运行 ActiveForm 属性会产生 OLEIDispatch 错误。
    
    wys问:
    同样是这个问题,请问在vb中该如何解决?
    李海答:不清楚你具体的目的是什么。VB和VFP的机制有很多不同,可以参考QA000428 "如何选出为空的数据"QA003815 "如何判断一个对象变量是否为nothing"

此问题由ydz387回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio