Запись информации в файл
Дата добавления: 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 | Конец цикла Закрытие файла |