Опубликован: 15.11.2010 | Доступ: свободный | Студентов: 742 / 44 | Оценка: 4.00 / 5.00 | Длительность: 17:30:00
Специальности: Программист
Лекция 8:

Буферизированный (потоковый) ввод-вывод. Часть III

8.6. Приложение № 3. Операторы файлового ввода-вывода на языке Quick Basic

ОПЕРАТОР INPUT
НАЗНАЧЕНИЕ: Форматированный ввод значений переменных из текстового файла;
СИНТАКСИС: INPUT #filenumber%, variablelist, где
  • filenumber% Номер файла, открытого функцией OPEN. Если этот номер не указан (поле пропущено), происходит ввод значений с клавиатуры;
  • variablelist - список числовых переменных, которым присваиваются значения;
ОПИСАНИЕ: Оператор осуществляет форматированный ввод значений переменных, перечисленных в строке <список переменных> в конце оператора. В качестве значений распознаются символы: ".", "0-9" и "A-Za-z";
ПРИМЕЧАНИЕ:
  1. Оператор INPUT использует запятую как разделитель между именами переменных;
  2. При клавиатурном вводе точка с запятой сразу после имени оператора позволяет курсору остаться на той же строке, с которой производится ввод после нажатия клавиши "Enter" ;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.

ОПЕРАТОР LINE INPUT
НАЗНАЧЕНИЕ: Неформатированный ввод значений в текстовую переменную из текстового файла;
СИНТАКСИС: INPUT #filenumber%, variable$, где
  • filenumber% - Номер файла, открытого функцией OPEN. Если этот номер не указан (поле пропущено), происходит ввод значений с клавиатуры;
  • variable$ - имя текстовой переменной, в которую записывается прочитанная строка.
ОПИСАНИЕ: Оператор осуществляет неформатированный ввод строки в указанную переменную. В качестве значений допускаются любые символы;
ПРИМЕЧАНИЕ:
  1. Оператор LINE INPUT читает все символы до нажатия пользователем клавиши "Enter" ;
  2. При клавиатурном вводе точка с запятой сразу после имени оператора позволяет курсору остаться на той же строке, с которой производится ввод после нажатия клавиши "Enter" ;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.

ОПЕРАТОР PRINT
НАЗНАЧЕНИЕ: Вывод списка числовых и символьных переменных, выражений и литералов в файл;
СИНТАКСИС: PRINT [#filenumber%,] [expressionlist] [{; | ,}], где
  • filenumber% - Номер файла, открытого функцией OPEN. Если этот номер не указан (поле пропущено), происходит вывод значений на экран;
  • expressionlist - список из одной или более числовых или символьных выражений, выводимых на печать;
  • {; | ,} - разделители, применяемые к выводу следующего выражения и означающие следующее:
    • ; - означает печать сразу после вывода предыдущего выражения;
    • , - означает печать следующего выражения сначала следующей "зоны вывода"
    • <пусто> - означает вывод с новой строки;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.
ПРИМЕЧАНИЕ: в Quick Basic зона печати имеет ширину в 14 символов.

ОПЕРАТОР PRINT USING
НАЗНАЧЕНИЕ: Форматированный вывод списка числовых и символьных переменных, выражений и литералов в файл. Формат выводимых выражений определяется строкой формата: formatstring$ ;
СИНТАКСИС: PRINT [#filenumber%,] USING formatstring$; expressionlist [{; | ,}], где
  • filenumber% - Номер файла, открытого функцией OPEN. Если этот номер не указан (поле пропущено), происходит вывод значений на экран;
  • formatstring$ - текстовая строка, содержащая в себе один или более "опций формата". Её формат смотри ниже, в таблице 7.1 "Буферизированный (потоковый) ввод-вывод. Часть II" ;
  • expressionlist - список из одной или более числовых или символьных выражений, выводимых на печать;
  • {; | ,} - разделители, применяемые к выводу следующего выражения и означающие следующее:
    • ; - означает печать сразу после вывода предыдущего выражения;
    • , - означает печать следующего выражения сначала следующей "зоны вывода"
    • <пусто> - означает вывод с новой строки;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.

Кроме того, для открытия или закрытия файлов для чтения/записи используются операторы OPEN и CLOSE. Их описание также смотрите ниже.

ОПЕРАТОР OPEN
НАЗНАЧЕНИЕ: Открывает файл для чтения-записи
СИНТАКСИС: OPEN file$ [FOR mode] [ACCESS access] [lock] AS [#]filenumber% [LEN=reclen%], где
  • file$ - имя файла или устройства. Имя файла может включать диск и полный путь к файлу;
  • mode - один из следующих режимов файла: APPEND, BINARY, INPUT, OUTPUT или RANDOM. Подробнее о режимах открытия файлов смотри таблицу 8.2;
  • access - в сетевом окружении указывает, в каком режиме открыт файл: для чтения, записи, или доступ для чтения записи. Смотри таблицу 8.2;
  • lock - указывает блокировку файлов в сетевом (многопользовательском) окружении. Возможные значения: SHARED, LOCK READ, LOCK WRITE, LOCK READ WRITE:
    • SHARED - означает "общий ресурс", блокировкой которого управляет операционная система;
    • LOCK READ - означает возможность блокировки файла для чтения;
    • LOCK WRITE - означает блокировку файла для записи;
    • LOCK READ WRITE - означает блокировку файла для чтения записи;
    • <пусто> - файл может использоваться только локально одним пользователем;
  • filenumber% - Число в пределах от 1 до 255, которое определяет номер файла в операциях чтения-записи;
  • reclen% - для файлов с произвольным доступом - длина записи (по-умолчанию 128 байт); для файлов с последовательным доступом - размер буфера в символах (по-умолчанию 512 байт);
ОПИСАНИЕ: Данный оператор открывает файл для чтения-записи и связывает с его имя с определённым номером файла, который может принимать значение от 1 до 255;
ПРИМЕЧАНИЕ:
  1. С помощью этой функции можно открыть не только файл, но и, например, устройство, обозначенное символами устройства MS-DOS: CON, AUX, COM1-COM6, PRN, LPT1-LPT4 и NUL;
  2. Чаще всего используются режимы (mode) INPUT (для последовательного ввода текстовых данных) и OUTPUT (для последовательной записи в новый текстовый файл);
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.
Таблица 8.2. Режимы открытия файлов операторами языка BASIC.
Значения переменных mode и access для оператора OPEN Quick Basic
Переменная mode
FOR РЕЖИМ
APPEND указывает, что файл открыт для последовательного вывода и устанавливает указатель записи в конец файла. Операторы PRINT # и WRITE # будут "дописывать" (дополнять) значения с конца этого файла;
BINARY указывают на "двоичный" режим открытия файла. При этом режиме Вы можете читать и записывать информацию в любую позицию файла, используя операторы GET и PUT;
INPUT указывает, что файл открыт для последовательного ввода в текстовом режиме;
OUTPUT указывает, что файл открыт для последовательного вывода в текстовом режиме;
RANDOM указывает, что файл открыт для произвольного доступа к своим записям;
ПРИМЕЧАНИЕ: Ключевые слова APPEND, BINARY, INPUT, OUTPUT и RANDOM используются в операторе OPEN для указания режима работы файла или устройства. INPUT, OUTPUT, и RANDOM также используются в операторе OPEN COM.
ПРИМЕЧАНИЕ: RANDOM является режимом открытия файлов по-умолчанию;
Переменная access
ACCESS Ключевое слово указывает тип доступа к открытому файлу для пользователей сети:
ACCESS {READ | WRITE | READ WRITE}
READ открывает файл только для чтения;
WRITE открывает файл только для записи;
READ WRITE открывает файл для чтения и записи.
ПРИМЕЧАНИЕ: Режим READ WRITE доступен только для режимов открытия файлов RANDOM, BINARY и APPEND (для последовательного доступа);

ОПЕРАТОР CLOSE
НАЗНАЧЕНИЕ: Закрывает один или более файлов или устройств;
СИНТАКСИС: CLOSE [[#]filenumber%[,[#]filenumber%]...], где

filenumber% номер открытого файла или устройства;

ОПИСАНИЕ: Данный файл закрывает файлы и устройства ввода-вывода, открытые оператором OPEN ;
ПРИМЕЧАНИЕ: Оператор CLOSE без аргументов закрывает все открытые файлы и устройства;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.