Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Языки Бейсик

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
622 Кб
Скачать

Глава 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

*

 

PRINT

“*”

+

LTRIM$(a$) + “*” 'Вывод:

*Basic *

PRINT

“*”

+

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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]