Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-методическое пособие РЭИС.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
3.85 Mб
Скачать

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

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

Текст обычно хранится в кодировке UNICODE, но объекты ЧтениеТекста и ЗаписьТекста умеют работать и с другими кодировками.

6.1.3. Объект «ЗаписьТекста»

Объект ЗаписьТекста предназначен для последовательной записи текстовых файлов. Приведенный ниже фрагмент запишет небольшой текстовый файл:

Файл = Новый

ЗаписьТекста("с:\test.txt",КодировкаТекста.ANSI.Символы.ПС);

Файл.Записать("Строка1");

Файл.ЗаписатьСтроку("Строка2");

Файл.Записать("Строка3");

Файл.3акрыть();

В результате работы программы получится следующий текстовый файл:

Строка1Строка2

Строка3

6.1.4. Объект «ЧтениеТекста»

Объект ЧтениеТекста предназначен для последовательного чтения текстовых файлов. Следующий фрагмент прочитает ранее записанный файл:

Файл = Новый

ЧтениеТекста("с:\test.txt",КодировкаТекста.ANSI,Символы.ПС);

Строка1 = Файл.Прочитать(7);

Строка2 = Файл.ПрочитатьСтроку();

Строка3 = Файл.Прочитать();

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

6.2. XBase (работа с dbf-файлами)

Система 1C:Предприятие 8.0 позволяет создавать, читать и записывать DBF-файлы. Возможности по работе с DBF-файлами мало изменились по сравнению с версией 7.7, но немного изменилась техника работы с полями и индексами: теперь они создаются через соответствующие свойства-коллекции.

6.2.1. Запись dbf-файла

Следующий фрагмент программы создает DBF-файл с тремя полями и выгружает в него справочник Сотрудники:

ФайлDBF = Новый XBase;

ФайлDBF.Поля.Добавить("Name","S",100);

ФайлDBF.Поля.Добавить("Dep","S",50);

ФайлDBF.Поля.Добавить("Sum","N",10,2);

ФайлDBF.Кодировка = КодировкаХВаsе.ОЕМ; //кодировка DOS 

ФайлDBF.СоздатьФайл("с:\staff.dbf");

Сотрудники = Справочники.Сотрудники.Выбрать();

Пока Сотрудники.Следующий() Цикл

ФайлDBF.Добавить();  

ФайлDBF.Name = Сотрудники.Наименование;  

ФайлDBF.Dер = Сотрудники.Подразделение;  

ФайлDBF.Sum = Сотрудники.Оклад;

ФайлDBF.Записать();  

КонецЦикла;

ФайлDBF.ЗакрытьФайл();

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

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

ФайлDBF = Новый XBase;

//только для чтения

ФайлDBF.ОткрытьФайл("с:\staff.dbf",,Истина);

ФайлDBF.Первая();

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

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

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

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

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

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

ФайлDBF.Следующая();  

КонецЦикла;

ФайлDBF.ЗакрытьФайл();

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

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

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