Запись информации в файл


Дата добавления: 2014-01-11; просмотров: 1; лекция была полезна: 0 студентам(у); не полезна: 0 студентам(у).
Опубликованный материал нарушает авторские права? сообщите нам...

Закрытие файла

После завершения работы с файлом его закрывают с помощью оператора:

Close [<список_номеров_файлов>]

Если номер закрываемого файла не указан, закрываются все открытые файлы.

Пример 19.28. Закрытие файлов

Close # 1; #2;#4 ' закрытие файлов, ранее открытых под номерами 1, 2, 4

Close ' закрытие всех открытых файлов

Существует несколько операторов вывода информации в файл.

1. Печать в последовательный файл

Данный оператор обеспечивает запись форматированного вывода в последовательный файл текстового типа - по аналогии с функцией печати:

Print#номер_файла;[<выходной_список_переменных>]

Выходной список печати может содержать:

[{Spc(n)|Tab[(n)]}] [<выражение>] [charpos]

где Spc(n) - длина пустой строки;

Tab(n) - печать с указанной позиции;

<выражение> - выражение числового или символьного типа;

charpos - определяет позицию вставки для следующего символа. Символ ; обеспечивает переход на другую строку (к другой записи файла).

Если последовательный файл должен затем считываться, не рекомендуется применять оператор Print.

Пример 19.29. Печать в последовательный файл

Текст программы Комментарий
Open "FILE" For Output As #1 Print #1; "Печать любого текста" Открытие файла для печати Вывод в файл текстовой строки
Print #1; Вставка пустой строки
Print #1; "Код"; Tab ; "Наименование" Вывод в две колонки
Print #1; "Код" ; " " ; "Наименование" Разделение двух слов пробелом
Print #1; Sps(5); "Код" Вставка 5 отступов перед печатью слова
Print #1; Tab(10); "Код" Позиционирование в колонку 10
MyBool=False Присвоение значений переменным различного типа
MyDate=#February 12, 1969# MyNull=Null MyError=CVErr(32767)  
Print #1; MyBool; Print #1; MyDate ; "это дата" Print #1; MyNull; "это пустое значение" Print #1; MyError; "код ошибки" Печать значения переменной в файл
Close#1 Закрытие файла

Результаты вывода:

Печать любого текста

Код Наименование

Код Наименование

Код

Код

False

February 12, 1969 - это дата

Nul - это пустое значение

Error 32767 - это код ошибки

2. Запись в последовательный файл

В последовательный файл запись информации выполняется командой:

Write #номер_файла; [<выходной_список_переменных>]

Для данных числового типа используется символ точка для десятичной точки, В отличие от оператора Printпри записи в файл автоматически вставляются специальные символы- разделители:

  • запятая - между элементами;
  • двойные кавычки - вокруг символьных данных.

· В запись файла вставляется символ возврата каретки (переход на новую строку - запись файла).

Пример 19.30. Запись информации в последовательный файл

Текст программы Комментарий
Open 'FILE" For Output As #1 Write #1;"⌠Всем привет!'; 1234567890 Write #1; Открытие файла для печати Записать символьной строки и числа Вставка пустой строки
MyBool=False MyDate="February 12, 1969" MyNull=Null MyError=CVErr(32767) Присвоение значений переменным
Write #1;; MyBool ; Write #1; MyDate ; Write #1; MyNull ; Write #1; MyError; Запись значений переменных в файл
Close#1 Закрытие файла

Результат вывода:

"Всем привет!",1234567890

#FALSE#,"February 12, 1969",#NULL#,#ERROR 32767#

3. Вывод данных в файл произвольного доступа

Вывод данных выполняется оператором:

Put [#номер_файла; [#записи],<переменная>

где #записи - номер записи для файла произвольного доступа либо номер байта, с которого начинается запись, для двоичного файла. Если номер не указан, используется следующий за последним использованным в операторах Get. Put, Seek.

Пример 19.31. Запись в файл произвольного доступа

Текст программы Комментарий
Type Record ID As Integer Name As String * 20 End Type Объявление пользовательского типа данных для записи
Dim MyRecord As Record Объявление переменной на основе пользовательского типа данных
Open "TESTFILE" For Random As #1 Len=Len(MyRecord) Открытие файла произвольного доступа с длиной, соответствующей длине объявленного типа
For RecordNumber=1 To 5 Организация цикла для записи в файл
MyRecord.ID=Number ═MyRecord.Name ="Запись номер" & RecordNumber Формирование содержимого записи
Put #1, RecordNumber, MyRecord Непосредственная запись в файл
Next RecordNumber Close #1 Конец цикла Закрытие файла