Языки Бейсик
.pdfГлава XII. Бейсик-HELP |
151 |
KEY(n%) STOP
ON KEY(n%) GOSUB строка
ãäå
n% значение, указывающее на функциональную клавишу, клавишу направления или определенную пользователем клавишу.
n% |
Клавиши |
|
|
|
|
0 |
Все перечисленные здесь клавиши (KEY(0) ON, KEY(0) OFF и |
|
KEY(0) STOP). |
||
|
||
|
|
|
1-10 |
Функциональные клавиши F1-F10. |
|
|
|
|
11 |
Клавиша СТРЕЛКА ВВЕРХ. |
|
|
|
|
12 |
Клавиша СТРЕЛКА ВЛЕВО. |
|
|
|
|
13 |
Клавиша СТРЕЛКА ВПРАВО. |
|
|
|
|
14 |
Клавиша СТРЕЛКА ВНИЗ. |
|
|
|
|
15-25 |
Определенные пользователем клавиши. Более подробно смотрите |
|
в Объявление определенных пользователем клавиш. |
||
|
||
|
|
|
30, 31 |
Функциональные клавиши F11 и F12. |
|
|
|
|
|
|
KEY(n%) ON |
Включает отслеживание событий для указанной клавиши. |
KEY(n%) OFF |
Выключает отслеживание событий для клавиш. |
KEY(n%) STOP Приостанавливает отслеживание событий. Событие обраба-
|
тывается при включении KEY ON. |
Строка |
Метка или номер первой строки подпрограммы отслеживания |
|
событий. |
Пример:
'В этом примере необходимо, чтобы клавиши Caps Lock и Num Lock
'были выключены. CONST ESC = 27
KEY 15, CHR$(&H4) + CHR$(&H1F) 'Устанавливает Ctrl+S как KEY 15 ON KEY(15) GOSUB PauseHandler
KEY(15) ON
WHILE INKEY$ <> CHR$(ESC)
PRINT “Нажмите Esc для останова, Ctrl+S для паузы” PRINT
WEND
END
PauseHandler:
SLEEP 1
RETURN
См. также KEY (Присваивание)
152 |
Языки Бейсик |
Объявление определенных пользователем клавиш
Для объявления определенных пользователем клавиш используйте следующие варианты оператора KEY:
KEY n%, CHR$(флаг_клавиатуры%) + CHR$(скан-код%) где
n% значениевпределахот15до25,идентифицирующееклавишу. флаг_клавиатуры% Одно из следующих значений или сумма значений, указывающие, используются ли определенные пользователем клавиши в комбинации с клавишами Shift, Ctrl, Alt, NumLock или Caps Lock или же с клавишами расширенной кла-
виатуры:
Значение Клавиша
0 Нет флага клавиатуры
1 до 3 Любая клавиша Shift
4 Клавиша Ctrl
8 Клавиша Alt
32 Клавиша NumLock
64 Клавиша Caps Lock
128Клавиширасширеннойклавиатуры на клавиатурах со 101-ой клавишей
Для указания совместного использования клавиш сложите соответствующие значения. Например, значение 12 указывает, что определенная пользователем клавиша используется в комбинации с клавишами Ctrl и Alt.
скан-код% Скан-код объявляемой клавиши.
См. Скан-коды клавиатуры
См. также KEY (Присваивание), KEY, ON KEY (Отслеживание событий).
KILL-оператор
Удаляет файлы с диска.
Формат записи:
KILL файлы$
ãäå
файлы$ Определяет файл или файлы для удаления. Может включать путь и подстановочные символы DOS (? и *).
Пример:
INPUT “Файлы для удаления: “; f$
KILL f$
См.также FILES
Глава XII. Бейсик-HELP |
153 |
LBOUND-функция
Возвращает верхнюю (LBOUND) или нижнюю (UBOUND) границу (наименьший или наибольший доступный индекс) для указанного размера массива.
Формат записи:
LBOUND(массив[,размер%])
UBOUND(массив[,размер%])
ãäå
массив Имя массива.
размер% Указывает номер индекса массива, верхняя или нижняя граница которого возвращаются. Используйте 1 для первого индекса, 2 — для второго индекса и т.д. Значение по умолчанию равно 1.
Пример:
DIM a%(1 TO 3, 2 TO 7)
PRINT LBOUND(a%, 1), UBOUND(a%, 2)
См. также DIM, REDIM
LCASE$-функция
LCASE$ è UCASE$
Переводят все буквы строки в строчные или прописные буквы.
Формат записи:
LCASE$(строк_выражение$)
UCASE$(строк_выражение$)
где строк_выражение$ Любое строковое выражение.
Пример:
Test$ = “СТрокА”
PRINT Test$
PRINT LCASE$(Test$);' только со строчными буквами PRINT UCASE$(Test$);' ТОЛЬКО С ПРОПИСНЫМИ БУКВАМИ
LEFT$-функция
Возвращают указанное число символов, стоящих с левого (LEFT$) или с правого (RIGHT$) конца строки.
Формат записи:
LEFT$(строк_выражение$,n%)
RIGHT$(строк_выражение$,n%)
где строк_выражения$ Любое строковое выражение.
n% |
Число возвращаемых символов, начиная с самого правого |
|
или левого символа строки. |
154 |
Языки Бейсик |
Пример:
a$ = “IBM DOS QBasic”
PRINT LEFT$(a$, 5) 'Вывод: IBM D
PRINT RIGHT$(a$, 5) 'Вывод: Basic
См.такжеMID$
LEN-функция
Возвращает число символов в строке или число байтов, необходимых для хранения переменной.
Форматзаписи:
LEN(строк_выражение$)
LEN(переменная)
ãäå
строк_выражение$ любоестроковоевыражение. переменная любаястроковаяпеременная.
Пример:
a$ = “IBM DOS QBasic”
PRINT LEN(a$) ‘Вывод 14
См.такжеOPEN
LINE-оператор
Рисуетнаэкранелиниюилипрямоугольник. Форматзаписи:
LINE [[STEP](x1!,y1!)]-[STEP](x2!,y2!) [,[цвет%] [,[B | BF] [,стиль%]]]
ãäå
STEP указывает,чтокоординатызадаютсяотносительнотекущегографического положениякурсора.
(x1!,y1!) Координатыначалаиконцалиниинаэкране. (x2!,y2!)
цвет% атрибутцвета,устанавливающийцветлинииилипрямоугольника.ДопустимыеатрибутыцветазависятотВашегографическогоадаптераирежимаэкрана,установленногопоследнимоператоромSCREEN.
Bрисуетпрямоугольниквместолинии.
BF рисуетзакрашенныйпрямоугольникцветомцвет%.
стиль% 16-битовоезначение,битыкоторогоустанавливаютбудутлирисоватьсяточ- кирастра.Используетсядляизображенияпрерывистыхипунктирныхлиний.
Пример:
'Длявыполненияэтогопримерануженцветнойграфическийадаптер.
SCREEN 1
LINE (110, 70)-(190, 120), , B
LINE (0, 0)-(320, 200), 3, , &HFF00
Глава XII. Бейсик-HELP |
155 |
См. также CIRCLE, INPUT, LINE INPUT, PRESET, PSET, SCREEN, Атрибуты и Значения Цвета, Режимы Экрана
LINE INPUT-оператор
LINE INPUT считывает строку, содержащую до 255 символов, от клавиатуры или из файла. См INPUT.
См.также INKEY$, INPUT$, Оператор OPEN, Режимы файла
LIST-ключевое слово
Присваивает клавише строку символов и может отображать значения клавиш. См. KEY.
LOC-функция
Возвращает текущую позицию в файле
Формат записи:
LOC(номер_файла%)
ãäå
номер_файла% номер открытого файла или устройства. Для бинарных файлов LOC возвращает позицию последнего считанного или записанного байта. Для файлов прямого доступа LOC возвращает номер последней считанной из файла или записанной в файл записи. Для последовательных файлов LOC возвращает позицию текущего байта в этом файле, деленную на 128.
Пример:
OPEN “TEST.DAT” FOR RANDOM AS #1
FOR i% = 1 TO 10 PUT #1, , i%
NEXT i% SEEK #1, 2
GET #1, , i%
PRINT “Данные: “; i%; “ Текущая запись: “; LOC(1);_ “ Следующая: “; SEEK(1)
См. также EOF, SEEK
LOCATE-оператор
LOCATE перемещает курсор на экране в указанную позицию.
Ñì. CSRLIN
LOCK-оператор
LOCK ограничивает или закрывает доступ к файлу при работе в сети.
UNLOCK отменяет ограничения, наложенные последним оператором LOCK.
156 |
Языки Бейсик |
Формат записи:
LOCK [#]номер_файла% [,{запись& | [начало&] TO конец&}]
UNLOCK [#]номер_файла% [,{запись& | [начало&] TO конец&}]
ãäå |
|
номер_файла% |
номер открытого файла. |
запись& |
для файлов прямого доступа — номер закрываемой записи |
|
по отношению к первой записи в файле. Для бинарных фай- |
|
лов — номер закрываемого байта относительно первого бай- |
|
та в файле. |
начало& и конец& номера первой и последней записи или байта в диапазоне закрываемых или открываемых записей или байтов.
Для последовательных файлов LOCK и UNLOCK влияют на весь файл.
Пример:
'Этот пример работает только в сети. OPEN “TEST.DAT” FOR RANDOM AS #1
FOR i% = 1 TO 10
PUT #1, , i% NEXT i%
LOCK #1, 2 'Закрытие записи 2
GET #1, 2, i%
UNLOCK #1, 2 'Открытие записи 2
LONG-ключевое слово
Указывают тип данных для переменных в операторах описания и в списке параметров. См. DOUBLE.
См. также AS, Набор основных символов, COMMON, DECLARE, DEF FN, DIM, REDIM, FUNCTION, SHARED, STATIC, SUB, TYPE
LOOP-ключевое слово
Повторяет блок операторов, пока условие верно, или до тех пор, пока условие не станет верным. См. DO..LOOP
См. также EXIT, FOR...NEXT, WHILE...WEND
LPOS-функция
Возвращает число символов, посланных на печать после последнего символа возврата каретки.
Формат записи:
LPOS(n%)
ãäå
n% Указывает один из портов принтера: 0 = LPT1, 1 = LPT1, 2 = LPT2, 3 = LPT3
Глава XII. Бейсик-HELP |
157 |
Пример:
'Для выполнения этого примера нужен принтер.
LPRINT
FOR i% = 1 TO 20 LPRINT i%;
IF LPOS(1) >= 10 THEN LPRINT 'Начать новую строку. NEXT i%
LPRINT-оператор
PRINT выводит данные на экран или записывает их в файл.
LPRINT печатает данные на принтере LPT1.
Формат записи:
PRINT [#номер_файла%,] [выражения] [{; | ,}] LPRINT [выражения] [{; | ,}]
ãäå
номер_файла%номер открытого файла. Если номер файла не указан, PRINT
|
выводит данные на экран. |
Выражения |
Одно или несколько числовых или символьных выражений для |
|
печати. |
{; | ,} |
Определяет, где начинается следующий вывод: |
; |
печать сразу после последнего значения. |
, |
печать в начале следующей зоны печати. |
Ширина зоны печати — 14 символов.
Пример:
OPEN “ÒÅÑÒ.ÄÀÍ” FOR OUTPUT AS #1
PRINT #1, USING “##.### “; 12.12345
CLOSE
OPEN “ÒÅÑÒ.ÄÀÍ” FOR INPUT AS #1
INPUT #1, a$
PRINT a$
LPRINT “Это строка “; 1
LPRINT “Это строка “,
LPRINT 2
См.также PRINT USING, LPRINT USING, WIDTH. WRITE
LPRINT USING-оператор
PRINT USING записывает отформатированный вывод на экран или в файл.
LPRINT USING печатает отформатированный вывод на принтере LPT1.
Формат записи:
PRINT [#номер_файла%,] USING символы_формата$; выражения [{; | ,}]
158 |
Языки Бейсик |
LPRINT USING символы_формата$; выражения [{; | ,}] |
|
ãäå |
|
номер_файла% |
номер открытого файла. |
символы_формата$;символьное выражение, содержащее один и более опреде-
|
лителей формата |
выражения |
одно или несколько числовых или символьных выраже- |
|
ний, разделенных запятыми, точкой с запятой, пробелами |
|
или табуляцией. |
{; | ,} |
Определяет, где начинается следующий вывод: |
; |
печать сразу после последнего значения. |
, |
печать в начале следующей зоны печати. |
Ширина зоны печати — 14 символов.
Пример:
a = 123.4567
PRINT USING “###.##”; a
LPRINT USING “+###.####”; a a$ = “ABCDEFG”
PRINT USING “!”; a$
LPRINT USING “\ \”; a$
См.также PRINT, LPRINT, WIDTH
LSET-оператор
LSET и RSET перемещают данные в буфер файлов прямого доступа (подготавливая его к оператору PUT) и осуществляют правое или левое выравнивание значений строковой переменной. LSET также копирует содержимое одной записи переменной в другую.
Формат записи:
LSET строк_переменная$=строк_выражение$
RSET строк_переменная$=строк_выражение$
LSET запись_переменной1=запись_переменной2
ãäå
строк_переменная$ любая строковая переменная или поле файлов прямого доступа, определенные в операторе FIELD.
строк_выражение$ для LSET — версия строк_переменной$ для левого края. Для RSET, версия строк_переменной$ для правого края.
запись_переменной1 запись |
переменных любого определенного пользовате- |
лем запись_переменной2 |
типа данных. |
Используйте LSET для присвоения записи переменной одного типа данных другому типу данных, определенному пользователем.
Пример:
OPEN “FILEDAT.DAT” FOR RANDOM AS #1 LEN = 10
Глава XII. Бейсик-HELP |
159 |
|
FIELD #1, 5 AS Ls1$, 5 AS Rs1$ |
|
|
LSET Ls1$ = “ËSET” |
|
|
RSET Rs1$ = “ÏSET” |
|
|
PUT #1, 1 |
|
|
CLOSE #1 |
|
|
OPEN “FILEDAT.DAT” |
FOR RANDOM AS #1 LEN = 10 |
|
FIELD #1, 5 AS Ls2$, 5 AS Rs2$ |
|
|
GET #1, 1 |
|
|
PRINT “*” + Ls2$ + |
“*”, “*” + Rs2$ + “*” |
|
CLOSE #1 |
|
|
См. также FIELD, GET, PUT
LTRIM$-функция
LTRIM$ и RTRIM$ удаляют начальные или конечные пробелы из строки. Формат записи:
LTRIM$(строк_выражение$)
RTRIM$(строк_выражение$)
где строк_выражение$ Любое строковое выражение.
Пример:
a$ = “ Basic “ |
|
|
|||
PRINT “*” + a$ + “*” 'Вывод: * Basic |
* |
|
|||
“*” |
+ |
LTRIM$(a$) + “*” 'Вывод: |
*Basic * |
||
“*” |
+ |
RTRIM$(a$) + “*” 'Вывод: |
* |
Basic* |
|
MID$-Функция , MID$-Оператор
Функция возвращает часть строки (подстроку).
Оператор замещает часть строковой переменной другой строкой. Формат записи:
MID$(строк_выражение$,начало%[,длина%]) MID$(строк_переменная$,начало%[,длина%])=строк_выражение$
ãäå
строк_выражение$ строка, из которой функция MID$ возвращает подстроку,
|
или строка замещения, используемая в операторе MID$. |
|
Может быть любым строковым выражением. |
начало% |
позиция первого возвращаемого или замещаемого симво- |
|
ла в строке. |
длина% |
число символов в подстроке. Если длина опущена, MID$ воз- |
|
вращает или замещает все символы справа от начальной по- |
|
зиции. |
строк_переменная$ строковая переменная, изменяемая оператором MID$.
160 |
|
Языки Бейсик |
Пример: |
|
|
a$ = “Почему я |
никогда не был в Париже?” |
|
PRINT MID$(a$, |
27, 5) 'Вывод: Париж |
|
Text$ = “Париж, Франция” |
||
PRINT Text$ |
'Вывод: Париж, Франция |
|
MID$(Text$, |
8) |
= “Сиэтл “ |
PRINT Text$ |
'Вывод: Париж, Сиэтл |
|
См. также LEFT$, RIGHT$, LEN
MKD$-функция
MKI$, MKL$, MKS$ и MKD$ переводят числа в числовые строки, которые могут храниться в операторе строковых переменных FIELD.
CVI, CVL, CVS и CVD переводят эти строки обратно в числа. См. CVD
MKDIR-оператор
CHDIR изменяет каталог устройства, принимаемый по умолчанию. MKDIR создает подкаталог. MRDIR удаляет подкаталог. FILES отображает содержимое текущего каталога или указанного каталога. См. CHDIR.
MKDMBF$-оператор
MKSMBF$ и MKDMBF$ переводят числа в формате IEEE в числовые строки бинарного формата (Microsoft-Binary-format), которые могут храниться в операторе строковых переменных FIELD.
CVSMBF и CVDMBF переводят эти строки обратно в числа в формате IEEE. См. CVDMBF.
MKI$-функция
MKI$, MKL$, MKS$ и MKD$ переводят числа в числовые строки, которые могут храниться в операторе строковых переменных FIELD.
CVI, CVL, CVS и CVD переводят эти строки обратно в числа. См. CVD.
MKL$-функция
MKI$, MKL$, MKS$ и MKD$ переводят числа в числовые строки, которые могут храниться в операторе строковых переменных FIELD.
CVI, CVL, CVS и CVD переводят эти строки обратно в числа. См. CVD
MKS$-функция
MKI$, MKL$, MKS$ и MKD$ переводят числа в числовые строки, которые могут храниться в операторе строковых переменных FIELD.
CVI, CVL, CVS и CVD переводят эти строки обратно в числа. См. CVD.
