RSS    

   Реферат: Все о Turbo Basic

файле.

2) поля  не разделеныи                       каждая запись точно такая же,  как

если бы эти данные отображались на экране или печатались на прин­тере. Для создания такого файла используется оператор PRINT#, для чтения из него - операторы INPUT$ или LINE INPUT#. Оператор INPUT$ передает из файла сразу всю строку (запись) указанной дли­ны n в символьную переменную, например, ST$

ST$ = INPUT$ (n,  #номер файла)

Оператор LINE INPUT# передает в указанную переменную ST$ всю строку независимо от ее длины

LINE INPUT #номер файла, ST$

Пример (с разделителями полей):

OPEN "SEQU.DAT" FOR OUTPUT AS #1

ST$ = " ИВАНОВ "

INT% = 1972

FLOT! = 75.3

'теперь записываем строку в файл

WRITE #1, ST$, INT%, FLOT!

ST$ = " ПЕТРОВ "

INT% = 1975

FLOT! = 62.5

'записываем другую строку в файл

WRITE #1, INT%, ST$, FLOT!

CLOSE #1

END

Созданный файл будет следующим

" ИВАНОВ ", 1972, 75.3

1975, " ПЕТРОВ ", 62.5

Следующая программа  читает  из  этого  файла:

OPEN "SEQU.DAT" FOR INPUT AS #1

ST$ = " "

INT% = 0

FLOT! = 0

'теперь читаем строку текста из файла

INPUT #1, ST$,  INT%,  FLOT!

PRINT ST$, INT%, FLOT!

ST$ = " "

INT% = 0

FLOT! = 0

'читаем другую строку

INPUT #1, INT%, ST$, FLOT!

PRINT INT%, ST$, FLOT!

CLOSE #1

END

Пример (без разделителей полей):

OPEN "SEQUEN.DAT" FOR OUTPUT AS #1

ST$ = " ИВАНОВ "

INT% = 1972

FlOT! = 73.1

'записываем строку текста в файл

PRINT #1, ST$, INT%, FLOT!

ST$ = " ПЕТРОВ "

INT% = 1975

FLOT! = 64.3

'запишем другую строку, используя оператор

PRINT #1, USING "+####$#.##^^^^"; INT%, ST$, FLOT!

CLOSE #1

END

Содержание созданного файла будет таким:

ИВАНОВ 1972 73.1

1975 ПЕТРОВ 6.43Е+01

Следующая программа  читает  из этого файла:

OPEN "SEQUEN.DAT" FOR INPUT AS #1

ST$ = " "

ST$ = INPUT$ (80,#1)

PRINT ST$

LINE INPUT #1, ST$

PRINT ST$

CLOSE #1

END

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 позиций вверх,  на

10 позиций вправо и на 10 позиций вниз, т.е. образует квадрат. Пробелы, разделяющие параметры, необязательны и используются для наглядности. Оператор

DRAW "BM 180,  20 NU10 ND10 NL10 NR 10"

осуществляет перемещение без обозначения пути в точку (180, 20), а затем чертит крест (знак +).

В операторе DRAW можно использовать не только символьные константы (см.выше), но и символьные переменные, в которых зара­нее заготавливаются отдельные фрагменты рисунка (или весь рису­нок), что позволяет воспроизводить их многократно различными опе­раторами DRAW. Например,

SQAR$ = "L10U10R10D10"

DRAW SQAR$

Аргументы перемещения n, k, V могут быть заданы константами, как в приведенных выше примерах операторов DRAW, или переменными. В последнем случае нужно использовать функцию VARPTR$. Например, операторы

DRAW " E15 " и

a = 15

DRAW " E = " + VARPTR$ (a)

выполняют одно и то же действие.  Это же относится и к операторам

I% = 1

DRAW " M = " + VARPTR$ (I%) + " , 40" и

DRAW " M = 1, 40"

Но в первом случае (при использовании переменной I%) оператор DRAW может выполняться при различных ее значениях, например, в цикле.

Замечание. Выполнение оператора DRAW возможно только в гра­фическом режиме (переход при помощи оператора SCREEN).

4.2. Операторы GET и PUT

Операторы GET и PUT позволяют создавать движущиеся изображе­ния.

При выполнении оператора GET текущее состояние части экрана запоминается. При выполнении оператора PUT изображение, сохранен­ное оператором GET, воспроизводится в другом указанном месте эк­рана, т.е. изображение как бы движется.

Страницы: 1, 2, 3, 4, 5


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.