Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №13.doc
Скачиваний:
8
Добавлен:
14.09.2019
Размер:
236.03 Кб
Скачать

Input #номер_файла, имя_переменной1, имя_переменной2, …

где:

  • номер_файла — номер файла, аналогичный номеру файла в операторе Open;

  • имя_переменной1, имя_переменной2, … — список переменных.

При работе этого оператора сначала считывается целая строка, а затем подстроки, отделенные разделителями (запятыми), помещаются в соответствующие переменные списка. Для корректной работы оператора строки файла должны иметь заданную структуру с разделителями. Обычно этот оператор используется в паре с оператором записи Write #.

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

Для построчного чтения данных из последовательного файла применяется оператор Line Input #. Синтаксис этого оператора следующий:

Line Input # номер_файла, имя_переменной

где:

  • номер_файла — номер файла, аналогичный номеру файла в операторе open;

  • имя_переменной — имя переменной, куда будет считана строка из файла.

Оператор Line Input # посимвольно считывает всю строку данных из файла и помещает ее в строковую переменную. При этом разделителем строк в файле служит стандартный разделитель строк символ возврата каретки CHR(13) или последовательность символов возврата каретки и перевода строки CHR(13) + CHR(10), причем в переменную эти разделители не вставляются.

Обычно оператор Line Input # используется в паре с оператором Print #.

Для того чтобы прочитать все данные из файла при помощи оператора Line Input #, необходимо организовать цикл чтения данных.

Например, откроем текстовый файл для чтения информации:

n=FreeFile

Open «C:\задача.txt» For Input As #n

Print #n, a

Close#n

 

Переход на заданную позицию в файле

Переход на заданную позицию в файле можно организовать с помощью оператора Seek, имеющего следующий синтаксис:

Seek #номер_файла, позиция

где:

  • номер_файла — номер файла, аналогичный номеру файла в операторе open;

  • позиция — целочисленное выражение, задающее позицию указателя в файле. Позиционирование при этом выполняется посимвольно.

Оператор Seek устанавливает указатель на требуемую позицию. Если после этого использовать функции чтения или записи, то действие этих функций будет выполняться начиная с позиции указателя, найденного оператором Seek.

Например, следующая команда установит указатель на позицию 77 (в переменной n хранится номер рабочего файла)

Seek #n, 77

 

Запись данных

Данные в файл последовательного доступа записываются с помощью операторов Print # и Write #. Оператор Write # дополнительно автоматически вставляет в файл разделители, но не дает гибкости при управлении форматированием данных. Как можно было заметить при изучении функций чтения данных, каждая из функций записи работает в паре с определенной функцией чтения. Для оператора Print # это функции Input или Line Input #, а для оператора Write # — это Input #.

Рекомендуется при применении операций записи/чтения данных из файлов использовать именно такие пары функций и операторов записи/чтения.

Рассмотрим оператор Print #. Он имеет следующий синтаксис:

Print #номер_файла, список

где:

  • номер_файла — номер файла, аналогичный номеру файла в операторе Open;

  • список — список выражений или переменных для записи.

Оператор Write # имеет следующий синтаксис:

Write #номер_файла, список

где:

  • номер_файла — номер файла, аналогичный номеру в операторе Open;

  • список — список выражений или переменных для записи.

При выполнении записи данных в файл оператор Write # после каждой строки автоматически вставляет символ перевода каретки CHR(13) и символ новой строки CHR(10).