Опубликовано: 17.01.2021

Объект «V7TextFile»

Объект "V7TextFile" — это один из объектов внешней компоненты V7plus. Также как и объект типа "Текст", объект типа "V7TextFile" служит для чтения и записи текстовых файлов, но предназначен для обработки файлов гораздо большего объёма (методы объекта "V7TextFile" меньше «съедают» оперативки и работают быстрее). Используется данный объект преимущественно в процедурах, реализующих обмен данными между различными конфигурациями, а также между конфигурациями и сторонними приложениями.

Работа с объектом "V7TextFile", как и с другими объектами, входящими в состав V7plus, начинается с инициализации внешней компоненты с помощью системной функции ЗагрузитьВнешнююКомпоненту(). Возвращаемое функцией значение будет равно единице, если инициализация прошла успешно.

// Выполняем инициализацию компоненты V77plus,
// учитывая то, что её местонахождение нам заранее неизвестно
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1 Тогда
   Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "ExtForms\" + "v7plus.dll") <> 1 Тогда
      Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "v7plus.dll") <> 1 Тогда
         Предупреждение("Компонента v7plus.dll не найдена!");
         Возврат;
      КонецЕсли;
   КонецЕсли;    
КонецЕсли;

// Пытаемся создать объект типа "V7TextFile"
Попытка
   ТекстовыйФайл = СоздатьОбъект("AddIn.V7TextFile");
Исключение
   Сообщить(ОписаниеОшибки());
   Предупреждение("Необходимо обновить версию компоненты v7plus.dll !");
   Возврат;
КонецПопытки;

// Работаем с объектом типа "V7TextFile"
ТекстовыйФайл.КодоваяСтраница(1);
ТекстовыйФайл.ОткрытьФайл(КаталогИБ() + "report.txt", 0);
. . .

Доступ к методам объекта "V7TextFile" осуществляется посредством переменной со ссылкой на объект, созданный с помощью системной функции СоздатьОбъект(). Для этого имя метода записывается через точку после имени переменной (см. пример выше).

Примечание: Обратите внимание, что при создании объектов из внешних компонент в качестве параметра функции СоздатьОбъект() передаётся идентификатор объекта, записанный через точку после ключевого слова «AddIn».

Методы объекта «V7TextFile»

Установить или получить используемую кодировку при работе с текстовыми файлами позволяет метод КодоваяСтраница(). В качестве единственного параметра методу передаётся числовое выражение, задающее кодировку (возможные значения: 0 — Windows-кодировка; 1 — DOS-кодировка). Для определения текущей кодировки метод используется без параметра (возвращаемое значение: 0 — Windows-кодировка; 1 — DOS-кодировка). Англоязычный синоним имени метода — CodePage().

Пример использования метода:

ТекстовыйФайл.КодоваяСтраница(1);
ТекстовыйФайл.ОткрытьФайл(КаталогИБ() + "report.txt", 0);

Установить или получить размер внутреннего буфера позволяет метод РазмерБуфера(). В качестве единственного параметра методу передаётся числовое выражение, определяющее размер буфера. Параметр является необязательным и не используется в случае, когда метод вызывается для получения текущего размера. Англоязычный синоним имени метода — BufferSize().

Пример использования метода:

ТекущийРазмерБуфера = ТекстовыйФайл.РазмерБуфера();

Открыть указанный текстовый файл позволяет метод ОткрытьФайл(). Англоязычный синоним имени метода — OpenFile().

Синтаксис метода:

ОткрытьФайл(<ИмяФайла>, <Режим>)

где

  • <ИмяФайла> — строковое выражение, содержащее имя файла и полный путь к нему;
  • <Режим> — числовое выражение, определяющее режим открытия файла. Возможные значения: 0 — только для чтения (многопользовательский режим); 1 — для записи (эксклюзивный режим). Параметр является необязательным. Значение по умолчанию — 0.

Если файл открывается для записи (значение второго параметра равно 1), то результат работы метода будет следующим:

  • если файла с таким именем нет — он создаётся;
  • если файл существует — он очищается.

Пример использования:

ТекстовыйФайл.КодоваяСтраница(1);
ТекстовыйФайл.ОткрытьФайл(КаталогИБ() + "report.txt", 1);

Записать указанную строку в конец файла позволяет метод ЗаписатьСтроку(). В качестве единственного параметра методу передаётся строковое выражение, содержащее добавляемую строку текста. Англоязычный синоним имени метода — WriteLine().

Пример использования метода:

ТекстовыйФайл.ЗаписатьСтроку("Отчёт о закупках по состоянию на " + ТекущаяДата());

Инициировать считывание файла (открыть выборку строк) от начала к концу позволяет метод ВыбратьСтроки(). Параметры у метода отсутствуют. Англоязычный синоним имени метода — SelectLines().

Пример использования метода:

Перем СтрокаЗагрузки;

ТекстовыйФайл.КодоваяСтраница(1);
ТекстовыйФайл.ОткрытьФайл("D:\1SBDB\report.txt", 0);

// Начинаем обработку файла
ТекстовыйФайл.ВыбратьСтроки();
Пока ТекстовыйФайл.ПрочитатьСтроку(СтрокаЗагрузки) = 1 Цикл
   . . .
КонецЦикла;

Считать очередную строку из выборки, предварительно открытой методом ВыбратьСтроки(), позволяет метод ПрочитатьСтроку(). В качестве единственного параметра методу передаётся имя переменной, куда метод возвратить считанную строку. Возвращаемым значением метода будет 1, если строка считана, или 0, если строка отсутствует (достигнут конец выборки). Англоязычный синоним имени метода — ReadLine().

Пример использования метода:

Перем СтрокаЗагрузки;

ТекстовыйФайл.КодоваяСтраница(1);
ТекстовыйФайл.ОткрытьФайл("D:\1SBDB\report.txt", 0);

// Начинаем обработку файла
ТекстовыйФайл.ВыбратьСтроки();
Пока ТекстовыйФайл.ПрочитатьСтроку(СтрокаЗагрузки) = 1 Цикл
   СтрокаЗагрузки = СокрЛП(СтрокаЗагрузки);
   Если (ПустаяСтрока(СтрокаЗагрузки) = 1) Тогда 
      Продолжить;
   КонецЕсли;
   . . .
КонецЦикла;

Закрыть текущий текстовый файл позволяет метод ЗакрытьФайл(). Параметры у метода отсутствуют. Англоязычный синоним имени метода — CloseFile().

Пример использования метода:

ТекстовыйФайл.ЗакрытьФайл();

Примечание: В режиме записи данный метод, в отличии от аналогичного метода объекта "Текст", в конце последней строки добавляет коды x0D x0A.

Другие статьи по схожей тематике