faceyao 发表于 2012-6-30 14:07:46

(已解决)如何对一个变量进行值的准确描述

本帖最后由 faceyao 于 2012-7-2 23:22 编辑

变量$a,假如变量的值是数字,则msgbox("","","他的内容为数字"),假如变量是文字则msgbox("","","他的内容为文字")

要表达上面的意思,代码该怎么写,

afan 发表于 2012-6-30 14:22:24

IsNumber(变量)
IsString(变量)

xms77 发表于 2012-6-30 20:56:25

回复 1# faceyao
楼主,$a = 123和$a = '123'是不一样的哟!前一个是数字,后一个是字符串。

Qokelate 发表于 2012-7-1 00:21:18

本帖最后由 Qokelate 于 2012-7-1 00:38 编辑


Local $a

Local $sTip
Select
        Case Not $a
                $sTip = '神马也不是,NULL'
        Case IsString($a)
                $sTip = '字符串'
        Case IsNumber($a)
                $sTip = '数字'
        Case IsKeyword($a)
                $sTip = '关键字'
        Case IsHWnd($a)
                $sTip = '句柄'
        Case IsObj($a)
                $sTip = '对象'
;各种IsXXXXX函数判断
EndSelect
MsgBox(0, 0, '$a是' & $sTip)

lchl0588 发表于 2012-7-1 11:37:13

回复 4# Qokelate
问下:当$a=Default 结果是什么???

netegg 发表于 2012-7-1 11:43:03

回复 5# lchl0588
default可以看作是宏,不同地方的定义不一样

user3000 发表于 2012-7-1 11:54:19

回复 4# Qokelate


    $a=0 时呢, 0 不能算是数字吗?
顺序有点乱了

lchl0588 发表于 2012-7-1 12:06:44

回复 6# netegg
如 user3000所说,代码检测顺序乱了!!Local $a
Local $sTip
Select
        Case IsString($a)
                $sTip = '字符串'
        Case IsNumber($a)
                $sTip = '数字'
        Case IsKeyword($a)
                $sTip = '关键字'
        Case IsHWnd($a)
                $sTip = '句柄'
        Case IsObj($a)
                $sTip = '对象'
        Case Not $a
                $sTip = '神马也不是,NULL'
                ;各种IsXXXXX函数判断
EndSelect
MsgBox(0, 0, '$a是' & $sTip)这样的话,一切就OK了

netegg 发表于 2012-7-1 12:45:41

回复 8# lchl0588
自己看看吧

lchl0588 发表于 2012-7-1 12:50:11

回复 9# netegg
老兄啊,这样当然有错啊!!!Run("notepad.exe")
Local $a =WinWait("", "", 10)
Local $sTip
Select
      Case IsString($a)
                $sTip = '字符串'
      Case IsNumber($a)
                $sTip = '数字'
      Case IsKeyword($a)
                $sTip = '关键字'
      Case IsHWnd($a)
                $sTip = '句柄'
      Case IsObj($a)
                $sTip = '对象'
      Case Not $a
                $sTip = '神马也不是,NULL'
                ;各种IsXXXXX函数判断
EndSelect
MsgBox(0, 0, '$a是' & $sTip)这样再测试下?????

netegg 发表于 2012-7-1 13:10:05

本帖最后由 netegg 于 2012-7-1 13:18 编辑

回复 10# lchl0588
你这个是获取的,还说什么判断,lz好像只是说的变量

另外楼主的原题记得有个api可以做,区分数值和字符串

ooxxgod 发表于 2012-7-1 13:18:22

双组 变量数字 子窜符 8楼应该是正解

lchl0588 发表于 2012-7-1 14:07:03

回复 11# netegg Local $a
Local $sTip
Select
        Case IsString($a) ;1
                $sTip = '字符串'
                Case Not $a ;2
                $sTip = '神马也不是,NULL'
       
EndSelect
MsgBox(0, 0, '$a是' & $sTip)和Local $a
Local $sTip
Select
        Case Not $a ;2
                $sTip = '神马也不是,NULL'
                Case IsString($a) ;1
                $sTip = '字符串'
EndSelect
MsgBox(0, 0, '$a是' & $sTip)测试下,看结果??只能说明给的值有点含糊吧???

netegg 发表于 2012-7-1 14:13:04

本帖最后由 netegg 于 2012-7-1 14:21 编辑

回复 13# lchl0588
这样用肯定有顺序问题,一个case一旦成立,后面的case就跳过了

对了,刚才没看到afan的回答,判断数值和字符串用那个就行了

Qokelate 发表于 2012-7-1 16:52:44

本帖最后由 Qokelate 于 2012-7-1 16:58 编辑


Local $a
Local $b = 0
Local $c = ''
Local $d = BinaryToString(0)

MsgBox(0,0,IsString($d))
If $a = $b Then MsgBox(0, 0, 0)
If $a = $c Then MsgBox(0, 0, 1)
If $b = $c Then MsgBox(0, 0, 2)
If $a = $d Then MsgBox(0, 0, 3)


看懂这个再研究细节吧
页: [1] 2
查看完整版本: (已解决)如何对一个变量进行值的准确描述