以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教一个字符串比较问题。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50873)

--  作者:test138
--  发布时间:2014/5/14 20:39:00
--  请教一个字符串比较问题。

以下是从提示框拷贝出来的,红色部分是提出来的字符串。

 

---------------------------

---------------------------
iu06Nc9vHWS5N2AolIZzYA==|字符长度24     ‘----- 注册表里提出来的值

iu06Nc9vHWS5N2AolIZzYA==|字符长度24     \'----- 输入的字符串
---------------------------
确定  
---------------------------

 

二者比较,判断结果为 False。不知何原因?特来讨教

 

 代码如下:

 

Dim reg As String = registry.getvalue("HKEY_***\\***\\***\\**\\FTER\\REGISTRY","REGISTRY","False")
If reg > ""
    If reg <> "iu06Nc9vHWS5N2AolIZzYA==" Or reg = "False"
        MessageBox.show("您未获取软件的授权! ")
    End If
End If

[此贴子已经被作者于2014-5-14 20:39:58编辑过]

--  作者:有点甜
--  发布时间:2014/5/14 20:45:00
--  

 看了一下,不应该错才对的。

 

 这段代码米有错,你看哪里错了。


--  作者:ndxfke
--  发布时间:2014/5/14 20:47:00
--  

是啊,我纳闷半天了。又做了以下测试,发现很不解。

 

output.show( reg <> "iu06Nc9vHWS5N2AolIZzYA==" )    结果为false

 

 

output.show(reg & "|" &  reg <> "iu06Nc9vHWS5N2AolIZzYA==" )    结果为True

 

 

Why?。。。

 

 


--  作者:有点甜
--  发布时间:2014/5/14 20:47:00
--  

 我测试了一下,这个函数有点问题,不能替换成 "False" 的。

 

 如果没有找到,就是空值

 

Dim reg As String = registry.getvalue("HKEY_CLASSES_ROOT\\***\\***\\**\\FTER\\REGISTRY","REGISTRY","False")
msgbox(reg)


--  作者:有点甜
--  发布时间:2014/5/14 20:48:00
--  

 所以你的代码要改成这样

 

Dim reg As String = registry.getvalue("HKEY_***\\***\\***\\**\\FTER\\REGISTRY","REGISTRY","False")

    If reg <> "iu06Nc9vHWS5N2AolIZzYA==" 
        MessageBox.show("您未获取软件的授权! ")
    End If


--  作者:有点甜
--  发布时间:2014/5/14 20:52:00
--  

 回复3楼,你这一段要这样改。你原先那样,先拼凑了reg,再比较的。

 

Dim reg As String = "iu06Nc9vHWS5N2AolIZzYA=="
output.show(reg & "|" &  (reg <> "iu06Nc9vHWS5N2AolIZzYA=="))


--  作者:ndxfke
--  发布时间:2014/5/14 20:55:00
--  

貌似可以了.

 

 

加引号的false,还不能当字符串用么?