ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.07.2024
Просмотров: 1513
Скачиваний: 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 #l;Spc(5); "Код" |
Вставка 5 отступов перед печатью слова |
Print #l;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 ; My Error; " код ошибки" |
|
Close #1 |
Закрытие файла |
595
2. Запись в последовательный файл В последовательный файл запись информации выполняется командой:
Write #номер_файла; [<выходной_список_переменных>]
Для данных числового типа используется символ точка для десятичной точки. В отличие от оператора Print при записи в файл автоматически вставляются специальные символы-разделители:
запятая – между элементами; двойные кавычки – вокруг символьных данных.
В запись файла вставляется символ возврата каретки (переход на новую строку – запись файла).
Пример 19.30. Запись информации в последовательный файл
3. Вывод данных в файл произвольного доступа Вывод данных выполняется оператором:
Put [#номер_файла; [#записи],<переменная>
где #записи - номер записи для файла произвольного доступа либо номер байта, с которого начинается запись, для двоичного файла. Если номер не указан, используется следующий за последним использованным в операторах
Get, Put, Seek.
Пример 19.31. Запись в файл произвольного доступа
Текст программы |
Комментарий |
596
Get Put [#номер_файла; [#записи],<переменная>
Пример 19.34. Чтение из файла произвольного доступа
Позиционирование на запись в файле
Позиция в записи (номер байта или номер записи) для очередного чтения или записи в файл устанавливается оператором:
Seek [#] номер_файла; позиция
где позиция – число в диапазоне номеров байтов (1 - 2 147 483 647) файла.
Для файла, открываемого в режиме последовательного доступа, с помощью оператора SEEK определяется байт.
Пример 19.35. Позиционирование в файле последовательного доступа
Текст программы |
Комментарий |
Dim MyChar As String |
Объявление переменной на основе |
|
пользовательского типа данных |
Open "FILE" For Input As #1 |
Открытие файла произвольного доступа с длиной, |
|
соответствующей длине объявленного типа |
MaxSize = LOF(l) |
Вычисление количества байтов в файле |
|
|
Дня файла, открываемого в режиме произвольного доступа, определяется очередной номер записи, с которой будет работать программа.
Пример 19.36. Позиционирование в файле произвольного доступа
598