主题:关于“*”掩码的初级方案
飞鸟12 [专家分:2830] 发布于 2005-09-14 09:27:00
CLS : i = 0
LOCATE 12, 20, 1: PRINT "PASSWORD:"
DO
LOCATE 12, 30 + i
DO: key$ = INKEY$: LOOP WHILE key$ = ""
SELECT CASE key$
CASE CHR$(13), CHR$(27) 'enter,esc
LOCATE ,,0
EXIT DO
CASE CHR$(8) 'backspace
IF i > 0 THEN
i = i - 1
LOCATE 12, 30 + i: PRINT " "
password$ = LEFT$(password$, LEN(password$) - 1)
END IF
CASE ELSE
IF " " <= key$ AND key$ <= "~" THEN
password$ = password$ + key$
LOCATE 12, 30 + i: PRINT "*"
i = i + 1
END IF
END SELECT
IF i > 16 THEN
BEEP
LOCATE ,,0
EXIT DO
END IF
LOOP
LOCATE 20, 10: PRINT password$
END
回复列表 (共9个回复)
沙发
QBWIN [专家分:30] 发布于 2005-01-10 18:32:00
好!不错!
板凳
qb45 [专家分:2880] 发布于 2005-01-13 14:38:00
很好!
3 楼
staa [专家分:3690] 发布于 2005-09-13 12:49:00
有实用性
4 楼
moz [专家分:37620] 发布于 2005-09-13 22:37:00
CLS
i = 0
LOCATE 12, 20, 0
PRINT "PASSWORD:";
DO
LOCATE 12, 30 + i,1
DO: key$ = INKEY$: LOOP WHILE key$ = ""
SELECT CASE key$
case chr$(27)
LOCATE 12, 30
PRINT space$(i)
i = 0
password$ = ""
CASE CHR$(13) 'enter,esc
LOCATE ,,0
EXIT DO
CASE CHR$(8) 'backspace
IF i > 0 THEN
i = i - 1
LOCATE 12, 30 + i
PRINT " "
password$ = LEFT$(password$, LEN(password$) - 1)
END IF
CASE chr$(32) to chr$(127)
if i<17 then
password$ = password$ + key$
LOCATE 12, 30 + i
PRINT "*";
i = i + 1
else
beep
end if
END SELECT
LOOP
后记:不好意思,又忍不住手动刀子了,
还没加上扩展键盘的支持呢.也没有加上光标的移动呢.
5 楼
jxx321 [专家分:240] 发布于 2005-09-14 18:59:00
马马乎乎看懂了.不过有几个地方小弟我不太懂呀![em18][em18][em18]
1, LOCATE 12, 20, 1---------我知道12表示在第12行,20表示在第20列.那1代表什么呀?
2, DO: key$ = INKEY$: LOOP WHILE key$ = ""-------没学过,不太懂呀?
3, LOCATE ,,0-------------不懂!
4, BEEP---------还是不懂!哎!!
[em10][em10][em10]
还请大哥给小弟我说明下拉!!!!![em1][em1][em1][em1]
6 楼
moz [专家分:37620] 发布于 2005-09-14 20:53:00
喔? 倒了,还要做题呢.
LOCATE ,,0---关闭光标显示,1就是打开光标显示
BEEP---------机箱喇叭发声
inkey$-------检查缓冲区的按键信息
7 楼
jxx321 [专家分:240] 发布于 2005-09-14 21:03:00
呵呵!别损我啊!大哥!这些我的确不知道呀!!!!!!!!!!!!!!![em2][em2][em2]
8 楼
moz [专家分:37620] 发布于 2005-09-14 22:29:00
不损不损
不过需要学习学习,假如你对QB有兴趣的话
不过我也不建议学QB,学VB去好了.
9 楼
jxx321 [专家分:240] 发布于 2005-09-15 18:16:00
因为我高考要考QB的 所以必须要学。
我来回复