
- •А.И. Ходанович Офисное программирование
- •Введение
- •Лабораторная работа № 1 Величины и типы данных vba
- •Лабораторная работа № 2. Макросы и модули vba
- •Лабораторная работа № 3. Линейный алгоритм. Стандартные функции vba
- •Математические функции
- •Функции преобразования данных
- •Функции даты и времени
- •Строковые функции
- •Задачи для самостоятельного решения
- •Лабораторная работа № 4. Циклический алгоритм. Операторы цикла
- •Лабораторная работа № 5. Алгоритм ветвления. Оператор условного перехода
- •Лабораторная работа № 6. Массивы
- •Задачи для самостоятельного решения
- •Лабораторная работа № 7. Подпрограммы. Процедуры и функции
- •Лабораторная работа № 8. Генератор случайных чисел. Метод Монте-Карло
- •Лабораторная работа № 9. Вычислительный эксперимент. Модели случайных блужданий
- •Лабораторная работа № 10. Численные методы решения уравнений вида
- •Приложение Работа с файлами. Инструкция Print #
- •Литература
- •Ходанович Александр Иванович
Приложение Работа с файлами. Инструкция Print #
Записывает отформатированные данные в файл с последовательным доступом.
Print #номерФайла, [списокВывода]
Параметры номерФайла Обязательный. Любой допустимый номер файла. списокВывода Необязательный. Выражение или список выражений, которые следует напечатать. Ниже приведены допустимые значения аргумента списокВывода:
Spc(n) - Используется для вставки пробелов в файл; здесь n число пробелов, которые следует вставить.
Tab(n) - Устанавливает курсор в столбец с указанным номером; здесь n номер столбца. Tab без аргумента устанавливает курсор в начало следующей зоны печати.
выражение - Числовые выражения или строковые выражения, которые следует напечатать.
позиция - Указывает позицию, в которой следует печатать следующий символ. Для установки курсора сразу после последнего напечатанного символа используйте точку с запятой. Для установки курсора в столбец с указанным номером используйте Tab(n). Для установки курсора в начало следующей зоны печати используйте Tab без аргумента. Если аргумент позиция опущен, следующий символ печатается на следующей строке.
Замечания
Данные, записанные с помощью инструкции Print #, обычно считываются из файла с помощью инструкций Line Input # или Input. Если аргумент список Вывода опущен, после аргумента номерФайла идет только разделитель списка, в файл печатается пустая строка. Для разделения выражений можно использовать пробелы или точки с запятой, которые в данной ситуации полностью эквивалентны. При выводе логических данных (тип Boolean) в файл записываются слова True или False. Ключевые слова True и False не переводятся, вне зависимости от национальной настройки.
При выводе данных типа Date используется текущий краткий системный формат даты. Если компонент, описывающий дату или время, отсутствует или равен нулю, в файл записывается только имеющийся в наличии компонент.
Если список Вывода имеет значение Empty, в файл ничего не записывается. Однако если список Вывода имеет значение Null, в файл записывается ключевое слово Null.
Данные типа Error записываются в файл как Error код Ошибки. Ключевое слово Error не переводятся, вне зависимости от национальной настройки.
Инструкция Print # записывает в файл данные, отформатированные с учетом национальной настройки. Это означает, в частности, что используется соответствующий разделитель целой и дробной части числа.
Поскольку инструкция Print # записывает в файл отформатированные данные, необходимо использовать разделители данных, обеспечивающие правильную печать. Если Tab без аргумента используется для перемещения позиции вывода в начало следующей зоны печати, Print # также записывает пробелы между полями печати в файле.
Для записи в файл данных, который в будущем планируется читать с помощью инструкции Input #, следует вместо инструкции Print # использовать инструкцию Write #. Использование инструкции Write # гарантирует, что записанные данные будут корректно разделены, что позволит прочитать их с помощью инструкции Input #. Кроме того, файлы, записанные с помощью инструкции Write #, могут быть корректно прочитаны при наличии любых национальных настроек.
Демонстрационный пример В примере инструкция Print # используется для записи данных в файл.
Open "TESTFILE" For Output As #1 ' Открывает файл для записи.
Print #1, "Пример" ' Печатает текст в файл.
Print #1, ' Печатает пустую строку в файл.
Print #1, "Зона 1"; Tab ; "Зона 2" ' Печатает в двух зонах печати.
Print #1, "Пример" ; " " ; "всем" ' Строки разделяются пробелом.
Print #1, Spc(5) ; "5 пробелов" ' Печатает пять пробелов.
Print #1, Tab(10) ; "Привет" ' Печатает слово в столбце 10.
' Присваивает значения типа Boolean, Date, Null и Error.
Dim MyBool, MyDate, MyNull, MyError
MyBool = False : MyDate = #February 12, 1969# : MyNull = Null
MyError = CVErr(32767)
' Вместо слов True, False, Null и Error записываются слова,
' соответствующие им в текущем языке. Текстовые константы даты
' записываются в кратком системном формате даты.
Print #1, MyBool ; " - логическое значение"
Print #1, MyDate ; " - дата"
Print #1, MyNull ; " - значение Null"
Print #1, MyError ; " - значение типа Error"
Close #1 ' Закрывает файл.
Sub Test()
Open "c:\1.txt" For Output As #1
Print #1, "Hello File"
Close #1
Open "c:\1.txt" For Input As #1
Dim s As String
Input #1, s
MsgBox s
Close #1
End Sub