Дисковая операционная система TR DOS 1993 г.

Раздел 5 - файлы с последовательным и произвольным доступом.


1.11 ФАЙЛЫ С ПОСЛЕДОВАТЕЛЬНЫМ И
ПРОИЗВОЛЬНЫМ ДОСТУПОМ ;

В предыдущем разделе обсуждались обычные массивы файлов данных.
TR-DOS обеспечивает два дополнительных типа файлов данных, последова-
тельного и произвольного доступа.

Чтобы использовать эти два типа данных, сначала Ьы должны открыть
поток. В SPECTRUM содержится 16 потоков. SOS резервирует потоки от О
до 3 для своего собственного использования, а потоки от 4 до 15 свободны
для TR-DOS. Когда открыт поток для файла; с лоследовательпым или про-
извольным доступом, используется 336 байтов памяти произвольного досту-
па.

В файле данных могут храните* как числовые; так и строковые перемен-
ные. Компьютер преобразует числовые переменные в строки. Строка закан-
чивается системно возвратом каретки (ASCIIQODE 13).

Данные файла с произвольным, доступом записываются по порядку, как
в кассетной ленте. Чтобы считать цепочку по направлению к концу файла,
необходимо начать с самого начала файла; Данные файла с произвольным
доступом хранятся в виде некоторого количества записей. Можно считать
или записать любую запись в этом файле; указав ее номер. Следовательно,
доступ к последней задней можно осуществить также быстро, как и к первой.

Другие, команды TRhDOSl nb выбору дисковода, копированию, измене-
нию названий и т.д. к файлам последовательного и произвольного доступа
применяется так же, как и к другим, Единственное отличие — в типе инди-
катора. файла,;который представляет собой "#" вместо "CODE" или "DATA".

COPY "В:РНШ1%РШЕ" #;=

NEW "NEW FILE"/mi:(;pl

ERASE "NAMEDD" # '""llli"
Как и файлы данных, файлы последовательного и произвольного доступа
редко управляются непосредственно с TR-DOS. Поэтому предполагается, что
нижеследующие примеры находятся в программе BASIC.

Последовательный файл может быть открыт для записи или чтения, но
не для обеих этих операций в одно и тоже время. Синтаксис открытия файла
для WRITE (записи) <шёд>^ощий:

OPEN STREAM NUMBER, TILE NAME",W
Когда поток отфыт для записи, ключевое .слово программы BASIC
PRINT.!йсйоЛьзуется длй записи данных в этот поток. Например:

10 LET D0S=15619 л:

20 RANDOMIZE USflibS: REM: OPEN #4,"TEST"W

30 PRife#4i.;:i#lg IS A TEST LINE"

40 RANDOM I Zfe USR DOS: REM: CLOSE #4
Обратите внимание HaTDOS" вместо печати в "15619" и закрытие файла.
Цепочка в строке
30 будет записана в файле "TEST" на диске. Если бы файл
не был закрыт;: данные были бы потеряны. Любой закрытый файл может
быть повторно открыт для дальнейшей операции считывания, изменения и
повторной записи под новым, названием.
Синтаксис открьгтия файла для чтения:

OPEN STREAM NUM®f$r':<Fl LE NAME", R
При потоке, открытом для READ, используется ключевое слово SOS
INPUT для с<ттывания данных из этого. потока, например:

10 LET D0S=15619

20 RANDOMIZE USR D0S*!%M: j0PEN #7, "TEST", R

30 INPUT #7; AS
Этот файл данных "TEST" б^йет загружен в AS $ йиска.
Файл с произвольным доступом — это файл ^анных, который содержит
некоторое количество записей, пронумерованных от нуля и выше. Длила
записей (максимально 254 байта каждая) "выбирается и распределяется при
первом открытии файла. Заггись.дранится в виде отдельной строки. Любая
строка записывается, выравнивается слева и завершается с помощью символа
возврата каретки (ASCII CODE 13). Оставшиеся байты записи теряются.
Любая строка, длина которой болънш!длины. записи убудет усечена до рас-
пределенной длины и записана без возврата карежи.Т

Когда файл произвольного доступа впервые • ЙШрывается, TR-POS рас-
пределяет 16 секторов (примерно 4 К$айт) в этот файл. Он буде* фтомати-
чески расширяться, если его длина прёвысйт 4 Кбайт. Для.. ^«pf: файла
произвольного доступа используется следующий:

OPEN STREAM NUMBER, "FILE NAME" RND^RECDRB'^SGVH^
Для записи в файл существует след уюпЩщ; fctfjirt аКсис команды (префикс
RANDOMIZE не требуется для операторов йЩ)Да и ввода PRINT и INPUT):

PRINT STREAM NUMBER, (RECORD NUMBER),VARIABLE NAME
Например:

100 RANDOMIZE USR 15619: REM: OPEN #8,:V.ADRESS" RND, 100
150 PRINT #8; (72),OS

Поток 8 был открыт для файла "ADRESS'Yb каюром иод каждую запись
назначено 100 байтов. Содержание DS было помещен^ i й запись номер 72
этого файла.. :

В отличие от последовательного файла, в файлах произвш1ьнош доступа
можно считывать его и делать в него запись не открывая заново файл'.
Для считывания записи из файла используется следующий синтаксис:

INPUT STREAM NUMBER, (RECORD NUMBER), VARIАб1ё1ШЕ, ::::
Например:

100 RANDOMIZE USR 15619: REM: OPEN #12,.JEST" RND, 80
110 PRINT #12, (20), AS

570 INPUT #12, (15), AS

990 RANDOMIZE USR 15619: REMii:j6ilOS|i#,12
999 END F ' f^ipiiiiiill

В строке 570 считывается запись с ноМером ^анйси 1S (помните, что это
16-я запись) и отгружается в переменную
AS.

Когда все операции с файлом закончены, цоодк необходимо закрыть, как
указано в строке ЕЬли .электропитание: ;будет отключено до закрытия
потока, то содержимое будетлчрачено. Одна запись может содержать более
одной цепочки переменной. Про]раш1а должна связать вместе эти цепочки
переменных для произведения оперЩодЬанйЬи. Таким же образом npoipaM-
ма должна разбить цепочку после операции считывания, если данные до-
лжны быть разделены сщдо&а отдельные^еременные.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
free humor - сценовые анекдоты.
От авторов - BODY снова в сети минской ZX-NET.
Печатается с продолж. - Три СисОпенка.
Планы - планы по колонизации луны.
Каникулы в Калифорнии - Она остановилась со вздымающейся грудью, чтобы перевести дыхание...

В этот день...   26 апреля