Неограниченные последовательные файлы.
Данные в этих файлах представлены так, как они выглядят на экране дисплея ил после печати:
OPEN "ADD.BAS" FOR OUTPUT AS #1
String$="This is a string of text"
Integer%=1000
Floating!=30000.1234
PRINT #1,String$,Integer%,Floating!
String$="Appol"
Integer%=-32.767
Floating!=12345.54296875
PRINT #1,USING "+##### & ##.##^^^^;Integer%,String$,Floating!
CLOSE #1
END
Содержимое файла ADD.BAS:
This is a string of text 1000 30000.1234
-32767 Appol 12.35E+03
Если Вы попытаетесь считать данные из этого файла с помощью оператора INPUT #1, String$, Integer%, Floating!, то в строковую переменную будет считано слово This, а затем программа попытается считать числовое значение, наткнется на цепочку is и выдаст ошибку. Поэтому прменим здесь другие операторы для считывания:
OPEN "ADD.BAS" FOR INPUT AS #1
String$=""
String$=INPUT$(80,1)
PRINT String$
LINE INPUT #1,String$
PRINT String$
CLOSE #1
END
Сведем операторы и функции Turbo-Basic,управляющие последовательными файлами, в таблицу:
Оператор/функция Операция
CLOSE Оканчивает операции на файле(ах)
EOF Сигнализирует о достижении конца файла
INPUT # Считывает запись (строку текста) в указанную переменную(ые)
INPUT$ Считывает n знаков в цепочную переменную
LINE INPUT # Считывает целую строку в цепочную переменную
OPEN Открывает файл для режима INPUT,OUTPUT,APPEND и присваивает
ему номер
PRINT #, Заносит данные в файл без ограничительных запятых
PRINT # USING
WRITE # Заносит данные в файл без ограничительных запятых
__________________________________________________________________________________
Описание этих операторов представлено ниже
CLOSE Закрывает файл или устройство.
Синтаксис: CLOSE [[#]filenum[, [#]filenum]...]
Комментарии: filenum - номер файла, который надо закрыть.
CLOSE прерывает соответствие между номером файла и файлом, установленное оператором OPEN, и закрывает файл. CLOSE без аргументов закрывает все файлы и устройства.
EOF сигнал достижения конца файла
Синтаксис: EOF(номер_файла)
Комментарии: номер_файла - номер файла из которого происходит считывание данных.
Функция EOF возврщает -1 («истина»), если указатель в файле последовательного доступа дошел до его конца. Эта функция может использоваться для тестирования конца файла при вводе данных - для того, чтобы избежать ошибки.
INPUT# считывает данные из последовательного файла.
Синтаксис: INPUT filenum, variable list
Комментарии filenum - номер, под которым был открыт файл
variable list - одна или несколько разделенных запятыми строковых или числовых переменных, в которые INPUT# считывает данные.
Файл может быть дисковым файлом, последовательным портом COM(n) или клавиатурой KYBD. Данные в файле должны соответствовать типу переменных в variable list и разделяться запятыми или символом возврата каретки (так записывает данные оператор WRITE#).
INPUT$ считывает заданное число символов с клавиатуры или файла.
Синтаксис: s$=INPUT$ (n, [, [#]filenum])
Комментарии: n - число символов, которое необходимо считать из файла
filenum. - номер файла.
Если filenum опущен, происходит ввод с клавиатуры, при этом вводимые знаки отсылаются в строку, а не на экран. Достоинство INPUT$ состоит в том, что он позволяет считывать все знаки, включая и управляющие коды. Но при нажатии клавиши, не имеющей кода а ASCII, возвращается CHR$(0).
LINE INPUT# считывает строку из последовательного файла в строковую переменную, игнорируя ограничители.
Синтаксис: LINE INPUT #filenum,string variable
Комментарии: filenum - номер файла,строка из которого считывается в строковую переменную string variable с игнорированием ограничительных запятых в тексте.
OPEN готовит файл или устройство для считывания или записи.
Синтаксис: OPEN filespec [FOR mode] AS [/] filenum [LEN=record size]
OPEN mode string,[/] filenum,filespec [record size]
Комментарии: mode - один из:
OUTPUT - определяет последовательный файл для записи в него.
INPUT - определяет последовательный файл для считывания из него.
APPEND - определяет последовательный файл для дозаписи в конец файла.
RANDOM - определяет файл прямого считывания для чтения или записи.
BINARY - определяет двоичный файл для чтения или записи.
mode string - строковое выражение, первым знаком в котором (и обычно единственным) служит один из следующих:
O - определяет режим последовательного вывода.
I - определяет режим последовательного ввода.
A - определяет режим последовательного вывода в конец файла.
R - определяет режим случайных входных/выходных сигналов.
B - определяет режим двоичного входа/выхода.
filenum может служить любое целое число. Для изменения этого числа служит оператор FILES в файле CONFIG.SYS в DOS.
filespec - строковое выражение, определяющее спецификацию файла.
record size - целочисленное выражение в пределах от 1 до 32767, определяющее длину записи в файле прямого доступа (умолчание составляет 128 байт).
Оператор OPEN осуществляет связь между числом (filenum) и файлом или физическим устройством и подготовку устройства для считывания или записи. В дальнейшем в операторах и функциях, работающих с файлами, вместо имен файлов используется указанное число (filenum). OPEN указывает на тип файла: с произвольным доступом, двоичный или файл с последовательным доступом (причем для последнего указывается режим работы: чтение или запись). Аннулирует действия оператора OPEN оператор CLOSE, закрывающий файл.
PRINT # и PRINT # USING записывают форматированную информацию в файл.
Синтаксис: PRINT #filenum, [USING format string;]expression list[;]
Комментарии: filenum - номер открытого файла.
format string - необязательная последовательность форматируемых знаков (описаны в операторе PRINT USING).
expression list - последовательность числовых и/или строковых выражений, выводимых в файл.
PRINT # пересылает информацию в файл таким же образом, как PRINT пересылает ее на экран. Т.к. оператор INPUT # требует разделения значений запятой, то в операторе PRINT # надо разделять данные:
PRINT #1,1","2","3
При этом в файле будет записано: 1 , 2 , 3
Оператор WRITE # автоматически разделяет данные, выводимые в файл, запятыми.
WRITE# выводит данные в последовательный файл.
синтаксис WRITE# N_файл, список выражений
Коментарии N_файл - это число, ассоциируемое с устройством или файлом в момент открывания файла.
Список выражений - это последовательность числовых и/или строчных выражений, разделяемых запятыми или точками с запятой.
return false">ссылка скрыта
WRITE# подобно PRINT# за исключением того, что WRITE# вставляет запятые между элементами списка выражений, выдает строчные данные внутри двойных кавычек и не выводит пробел перед положительным числом. WRITE# является предпочтительным способом записи полей данных в последовательный файл, поскольку этот оператор обеспечивает автоматическое разделение переменных запятыми и простановкой кавычек с обеих сторон строк. Это упрощает использование оператора INPUT#, когда осуществляются выписки из файла.