- •Лекция 15
- •Текстовые файлы
- •Последовательный доступ к тексту
- •XBase (работа с dbf-файлами)
- •Запись dbf-файла
- •Чтение dbf-файла
- •Удаленные записи
- •Индексы
- •Запись xml
- •Чтение xml
- •Интернет-технологии Интернет-соединение
- •Поле html-документа
- •Электронная почта (e-mail)
- •Работа с ftp
- •Работа с операционной системой
- •Механизм Automation
- •Технология внешних компонент
- •Важные отличия от версии 7.7
Последовательный доступ к тексту
При работе с большими текстовыми файлами бывает необходимо применить последовательный доступ, при котором весь файл не загружается в память и в один момент времени производится обработка только фрагмента файла. После чтения/записи очередного фрагмента к нему нельзя уже вернуться (в памяти его больше нет), поэтому такой доступ называется последовательным.
Текст обычно хранится в кодировке 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 устроены таким образом, что удаление записи не приводит к физическому удалению записи из файла. Запись просто помечается на удаление и пропускается при переборе. Таким образом, размер файла остается прежним.
Чтобы физически удалить все помеченные на удаление записи, нужно применить метод Сжать. Средства встроенного языка позволяют работать с записями, помеченными на удаление, перебирать их и даже отменять пометку на удаление.