такой функции нет - поэтому пишем свою, тем более что она действительно нужна
DECLARE SUB BufInput (StringVar$, Limit%)
'NOTE: DECLARE не поддерживается Microsoft
' Quick Basic версии 3.0 или более ранней версией и может быть удалено
CLS
Limit% = 10 ' Число символов для ввода
' приглашение для ввода строки
LOCATE 10, 5
PRINT "Введите строку из 10 символов: ";
COLOR 0, 7: PRINT SPACE$(Limit%)
LOCATE 10, 46
' ввести строку в буффер
CALL BufInput(a$, Limit%)
COLOR 7, 0
CLS
' вывести результат
LOCATE 10, 10
PRINT "Вы ввели: ";
COLOR 0, 7
PRINT a$
COLOR 7, 0
END
SUB BufInput (StringVar$, Limit%)
BackSp$ = CHR$(8)
Enter$ = CHR$(13)
Length% = 0
' Цикл ожидания ввода. ENTER завершает процедуру
WHILE char$ <> Enter$
char$ = INKEY$
IF char$ <> "" THEN
IF (Length% < Limit%) OR (char$ = BackSp$) THEN
SELECT CASE char$
CASE " " TO "~" ' Ввод только печатных символов
StringVar$ = StringVar$ + char$
PRINT char$;
Length% = Length% + 1
CASE BackSp$ ' если BackSpace - то удалять
IF Length% <> 0 THEN
Length% = Length% - 1
StringVar$ = LEFT$(StringVar$, Length%)
CurrX% = CSRLIN
CurrY% = POS(0) - 1
LOCATE CurrX%, CurrY%
PRINT " "
LOCATE CurrX%, CurrY%
END IF
END SELECT
ELSE
PLAY "o1AL32"
END IF
END IF
WEND
END SUB
тут можно скачать исходники
Комментариев нет:
Отправить комментарий