回 帖 发 新 帖 刷新版面

主题:关于“*”掩码的初级方案

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个回复)

沙发

好!不错!

板凳

很好!

3 楼

有实用性

4 楼

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 楼

马马乎乎看懂了.不过有几个地方小弟我不太懂呀![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 楼

喔? 倒了,还要做题呢.

LOCATE ,,0---关闭光标显示,1就是打开光标显示
BEEP---------机箱喇叭发声
inkey$-------检查缓冲区的按键信息

7 楼

呵呵!别损我啊!大哥!这些我的确不知道呀!!!!!!!!!!!!!!![em2][em2][em2]

8 楼

不损不损
不过需要学习学习,假如你对QB有兴趣的话

不过我也不建议学QB,学VB去好了.

9 楼

因为我高考要考QB的 所以必须要学。

我来回复

您尚未登录,请登录后再回复。点此登录或注册