我正在尝试创建一个登录屏幕。它需要用户名和密码。另外,我创建了一个文本文件,我将有效的用户名和密码写入文本文件。
当我按下confirm button
(在我输入用户名和密码进入登录界面后)时,程序会匹配用户名和密码,如果它们有效,则指示灯亮起。
它有效但当我尝试按confirm button
两次以上时,它会失败。实际上没有给出错误但是确认按钮被阻止了,所以我不能再进行2次试验。可能的原因是什么?
这是我的vi:
答案 0 :(得分:1)
将案例结构的所有代码移动到事件案例中。只要有click事件,就会执行case结构中的代码。因此,无需将布局从“确定”按钮连接到事件案例外部。
确定活动:
另外,我会有一个带停止按钮的停止案例来结束while循环。
停止活动
答案 1 :(得分:0)
代码中存在一个固有的逻辑问题,但尚未解决,导致失败。
正如许多其他人所指出的那样,你的内在循环不会退出。看起来内部while循环中的case语句总是为true,因为你将它绑定到布尔常量TRUE
。您的代码将输入该案例陈述,如果您的用户名或密码不正确,您的AND
将导致错误。指标不会改变,但你也不会停止循环。为了读入新值,必须停止内部while循环。
答案 2 :(得分:-1)
其他用户似乎已经回答了这个问题所以我只是想从我刚刚实现了非常类似的东西中加上我的两分钱。我们需要保护用户名和密码文件中的信息,以防止/检测篡改。为此,我们在labivew中使用内置的MD5函数来创建密码的哈希值,然后使用存储在文件中的哈希计算用户输入的哈希值。
此外,为了防止人们重新计算散列并将其插入文件中,我们获取了数据行并计算了行元素的散列并将其放在文件中,以便系统可以确定行散列是否匹配并确定任何篡改。
此外,我们使用字符串来保存哈希值,这样即使用户知道用于计算哈希值的信息,他们仍然必须知道有问题的字符串是如何被腌制的,以便能够生成正确的校验和。也许这对你的用途来说太过分了,但是,既然这个问题似乎得到了解答,我想我会把它扔出去供你考虑。