Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
V8_15_Взаимодействие с другими системами.doc
Скачиваний:
14
Добавлен:
18.11.2018
Размер:
95.23 Кб
Скачать

Последовательный доступ к тексту

При работе с большими текстовыми файлами бывает необходимо применить последовательный доступ, при котором весь файл не загружается в память и в один момент времени производится об­работка только фрагмента файла. После чтения/записи очередно­го фрагмента к нему нельзя уже вернуться (в памяти его больше нет), поэтому такой доступ называется последовательным.

Текст обычно хранится в кодировке 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.ЗакрытьФайл();

Чтение dbf-файла

Чтение DBF-файла производится еще проще:

ФайлDВF = Новый Xbase;

ФайлDВF.ОткрытьФайл("с:\staff.dbf",,Истина); //только для чтения

ФайлDВF.Первая();

Пока НЕ ФайлDВF.Вконце() Цикл

НовСотр = Справочники.Сотрудники.СоздатьЭлемент();

НовСотр.Наименование = ФайлDВF.Name;

НовСотр.Подразделение = ФайлDВF.Dер;

НовСотр.Оклад = ФайлDВF.Sum;

НовСотр.Записать();

ФайлDВF.Следующая();

КонецЦикла;

ФайлDВF.ЗакрытьФайл();

Удаленные записи

Файлы DBF устроены таким образом, что удаление записи не приводит к физическому удалению записи из файла. Запись про­сто помечается на удаление и пропускается при переборе. Таким образом, размер файла остается прежним.

Чтобы физически удалить все помеченные на удаление записи, нужно применить метод Сжать. Средства встроенного языка по­зволяют работать с записями, помеченными на удаление, переби­рать их и даже отменять пометку на удаление.