3.2. Файлы прямого доступа
Файл прямого доступа состоит из записей, доступ к которым возможен в произвольном порядке по номеру записи.
Создание файла прямого доступа включает следующие шаги: открытие файла (оператор OPEN); задание структуры записи файла, или разметка буфера (оператор FIELD); передача записи в буфер (операторы LSET или RSET); пересылка содержимого буфера в файл (оператор PUT), при этом если номер записи в операторе PUT не указан явно, буфер помещается на место текущей записи, при открытии файла указатель текущей записи равен 1, после каждой операции ввода или вывода указатель сдвигается на следующую запись; закрытие файла (оператор CLOSE).
Записи передаются в виде строк символов. Поэтому необходимо использовать соответствующие функции преобразования данных в строку символов и обратно.
Ниже перечислены функции и осуществляемые ими преобразования.
MKI$ (MKL$) - целое (длинное целое) в 2-х (4-х) байтовую строку;
MKS$ (MKD$) - вещественное (вещественное двойной точности) в 4-х (8-ми) байтовую строку.
CVI(CVL) - 2-х (4-х) байтовую строку в целое (длинное целое);
CVS(CVD) - 4-x (8-ми) байтовую строку в вещественное (вещественное двойной точности).
Считывание из файла прямого доступа включает также пять шагов: открытие файла; разметка буфера; передача записи из файла в буфер (оператор GET); обработка данных буфера (переменные буфера доступны из программы); закрытие файла.
Если вывод в файл и ввод из файла осуществляются в одной программе, то открытие и закрытие файла осуществляется один раз перед началом и после окончания всех операций с файлом.
Оператор OPEN имеет вид
OPEN имя файла AS #номер файла LEN = длина записи (отсутствие указания режима ввода или вывода означает, что файл прямого доступа).
Оператор FIELD имеет вид
FIELD # номер файла, n1 AS имя1 [,n2 AS имя2, ...] ,
где n1, n2, ... - длина поля в байтах под переменные имя1, имя2,
... (имя1, имя2, - символьные переменные ).
Операторы LSET, RSET имеют вид
LSET имя = символьное выражение
RSET имя = символьное выражение
Оператор LSET (RSET) заполняет одно поле записи в буфере (оператор LSET - с начала, RSET - с конца, оставшиеся позиции заполняются пробелами).
Оператор PUT имеет вид
PUT # номер файла [, номер записи]
Этот оператор передает содержимое буфера в файл на место записи с указанным номером (или текущей, если номер не указан).
Оператор GET имеет вид
GET # номер файла [, номер записии]
Этот оператор передает содержимое записи с указанным номером в буфер (если номера нет, передается текущая запись).
В качестве примера приводится программа, которая формирует файл прямого доступа из записей следующей структуры:
N п/п Фамилия Год рождения
В программе переменные обозначены n%, nam$, dat%; для соответствующих полей буфера используются обозначения np$ (2 байта), nm$ (10 байт), dt$ (6 байт).
OPEN "GSR.DAT" AS #1 LEN = 18
FIELD #1, 2 AS np$, 10 AS nm$, 6 AS dt$
FOR i%=1 to 3
INPUT n%, nam$, dat%
LSET np$ = MKI$ (n%)
LSET nm$ = nam$
LSET dt$ = MKI$ (dat%)
PUT #1,i%
NEXT i%
CLOSE #1
END
Следующая программа осуществляет ввод данных из файла GSR.DAT и их печать в обратном порядке.
OPEN "GSR.DAT" AS #1 LEN = 18
FIELD #1, 2 AS np$, 10 AS nm$, 6 AS dt$
FOR i% = 3 to 1 STEP -1
GET #1, i%
n% = CVI (np$)
dat%=CVI (dt$)
PRINT n%, nm$, dat%
NEXT i%
CLOSE #1
END
4. ДВИЖУЩИЕСЯ ИЗОБРАЖЕНИЯ, ЗВУКОВЫЕ ЭФФЕКТЫ
И НЕСТАНДАРТНЫЙ ВВОД С КЛАВИАТУРЫ
4.1. Оператор DRAW
При помощи оператора DRAW можно чертить (рисовать) на экране различные фигуры (предметы), используя параметры Un, Dn, Ln, Rn для перемещения на n позиций от текущей точки вверх (U), вниз (D), влево (L) или вправо (R); En, Fn, Gn, Hn для перемещения по диагонали на n точек вверх и вправо (E), вниз и вправо (F), вниз и влево (G), вверх и влево (H); M h,V для перемещения в точку с координатами h и V; M +h,+V для относительного перемещения на h позиций вправо (+) или влево (-) и на V позиций вниз (+) или вверх (-). Кроме того, параметр An устанавливает угол n, где n=0 (0 градусов), 1 (90 градусов), 2 (180 градусов) или 3 (270 градусов); TAn - поворачивает на угол n, где n меняется от -360 до 360 градусов. При n>0 поворот осуществляется против часовой стрелки, при n<0 - по часовой стрелке; Cn - устанавливает цвет n из текущей палитры; Sn - определяет масштаб n/4, n может меняться от 1 до 255 (по умолчанию n=4); B - подавляет высвечивание точек по пути перемещения в соответствии с командой С (по умолчанию путь перемещения высвечивается в виде линий, С содержит какие-либо из перечисленных параметров); N означает возврат в исходную позицию после выполнения команды перемещения С.
Последовательность параметров, определяющая режим и порядок перемещений, заключается в кавычки и указывается в операторе DRAW.
Например, оператор
DRAW "M 160, 100"
осуществляет перемещение от текущей позиции в позицию (160, 100),
оставляя при этом след в виде закрашенных точек. Оператор
DRAW "BM160, 100"
осуществляет то же перемещение, но не оставляя следа. Оператор
DRAW "L10 U10 R10 D10"
прочерчивает линию на 10 позиций влево, на 10 позиций вверх, на
... третьих фирм имеют логотип "Featuring Microsoft Visual Basic Technology". Это заставляет задуматься над тем, что же такое BASIC - "стандартный код для начинающих" или "основной язык для основной среды"... ГЛАВА3. разработка программы для расчета показателей финансового состояния предприятия. Для осуществления планирования деятельности любой фирмы на любом этапе работы осуществляются некоторые ...
... плана и состав слушателей, происходит определение стратегии курса, разрабатывается сценарий и интерактивное взаимодействие программы с пользователями. Разрабатываемый электронный справочник предназначен для самостоятельной работы студентов младших курсов по изучению Visual Basic в рамках университетского курса. Его создание имеет своей целью предоставить студентам, изучающим Visual Basic весь ...
... "тиках" (1/18 секунды) y SOUND x, y Оператор SOUND с нулевой длительностью прерывает работу пре- дыдущего оператора SOUND, даже если тот не отзвучал до конца. Ис- пользуется для специальных звуковых эффектов (сирена и пр.). 4.5. Оператор PLAY Этот оператор позволяет создавать музыку. Общий вид операто- ра PLAY 1символьное выражение - 29 - где символьное ...
... плохо защищенного от появления ошибок; · низкая скорость программирования; · невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов. Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от ...
0 комментариев