При работе с большими текстовыми файлами бывает необходимо применить последовательный доступ, при котором весь файл не загружается в память и в один момент времени производится обработка только фрагмента файла. После чтения/записи очередного фрагмента к нему нельзя уже вернуться (в памяти его больше нет), поэтому такой доступ называется последовательным.
Текст обычно хранится в кодировке UNICODE, но объекты ЧтениеТекста и ЗаписьТекста умеют работать и с другими кодировками.
· Объект «ЗаписьТекста»
Объект ЗаписьТекста предназначен для последовательной записи текстовых файлов. Приведенный ниже фрагмент запишет небольшой текстовый файл:
Файл = Новый
ЗаписьТекста("с:\test.txt",КодировкаТекста.ANSI, Символы.ПС);
Файл.Записать("Строка1");
Файл.ЗаписатьСтроку("Строка2");
Файл.Записать("СтрокаЗ");
Файл.Закрыть();
В результате работы программы получится следующий текстовый файл:
Строка1Строка2
СтрокаЗ
· Объект «Чтение Текста»
Объект ЧтениеТекста предназначен для последовательного чтения текстовых файлов. Следующий фрагмент прочитает ранее записанный файл:
Файл = Новый
ЧтениеТекста ("с: \test. txt",КодировкаТекста. ANSI,Символы.ПС);
Строка1 = Файл. Прочитать (7);
Строка2 = Файл.ПрочитатьСтроку ();
СтрокаЗ = Файл.Прочитать ();
Файл.Закрыть ();
XBase (работа с DBF-файлами)
Система 1C:Предприятие 8.0 позволяет создавать, читать и записывать DBF-файлы. Возможности по работе с DBF-файлами мало изменились по сравнению с версией 7.7, но немного изменилась техника работы с полями и индексами: теперь они создаются через соответствующие свойства-коллекции.
Запись DBF-файла
Следующий фрагмент программы создает DBF-файл с тремя полями и выгружает в него справочник Сотрудники:
ФайлDВF = Новый XBase;
ФайлDBF.Поля.Добавить("Name","S",100);
ФайлDВF.Поля.Добавить("Dep","S",50);
ФайлDВF.Поля.Добавить("Sum","N",10,2);
ФайлDВF.Кодировка = КодировкаХВаsе.ОЕМ; //кодировка DOS
ФайлDВF.СоздатьФайл("с:\staff.dbf");
Cотрудники = Справочники.Сотрудники.Выбрать();
Пока Сотрудники.Следующий() Цикл
ФайлDВF.Добавить();
ФайлDВF.Name = Сотрудники.Наименование;
ФайлDВF.Dер = Сотрудники.Подразделение;
ФайлDВF.Sum = Сотрудники.Оклад;
ФайлDВF.Записать();
КонецЦикла;
ФайлDВF.ЗакрытьФайл();