Основная страница

 

Глава 32
Работа с Текстом


 

Для работы с текстами в системе используется специальный агрегатный тип данных — «Текст». Механизм работы с текстами предназначен для формирования отчетов в текстовом виде, а также для обмена информацией с другими программами посредством текстовых файлов. Средства языка имеют возможность не только вывода строк в текстовые файлы, но и считывания имеющихся файлов с последующим разбором его по строкам.

Контекст работы с текстом

Во всех программных модулях вызов методов текста может выполняться только при помощи переменной со ссылкой на объект типа «Текст». Объект создается при помощи функции СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать метод объекта, имя метода (с указанием необходимых параметров) пишется через точку после идентификатора переменной.

При создании переменной типа «Текст» функции СоздатьОбъект в качестве параметра передается ключевое слово "Текст".

Англоязычный синоним ключевого слова ТекстText.

Пример:

МойОтчет = СоздатьОбъект("Текст");

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("List.txt");

Методы текста

КоличествоСтрок

Возвратить количество строк текста.

Синтаксис:

КоличествоСтрок()

Англоязычный синоним:

LinesCnt

Возвращаемое значение:

Количество строк в тексте.

Описание:

Метод КоличествоСтрок возвращает количество строк в тексте.

Пример:

Процедура ЗагрузкаПродукцииПоКаталогу()

   Прод = СоздатьОбъект("Справочник.ГотоваяПродукция");

   Если ВыбГруппа.Выбран() = 0 Тогда

      Предупреждение("Ошибка! Не выбрана группа!");

      Возврат;

   ИначеЕсли ВыбГруппа.ЭтоГруппа() = 0 Тогда

      Предупреждение("Не выбрана группа! Загрузка в корень!");

   Иначе

      Тов.ИспользоватьРодителя(ВыбГруппа);

   КонецЕсли;

   Текст = СоздатьОбъект("Текст");

   Текст.Открыть(ИмяФайла);

   Если Текст.КоличествоСтрок() = 0 Тогда

      Предупреждение("Текст пустой!");

      Возврат;

   КонецЕсли;

   Для Ном = 1 По Текст.КоличествоСтрок() Цикл

      Стр = Текст.ПолучитьСтроку(Ном);

      Поле = 0;

      Пока СтрДлина(Стр) > 0 Цикл

         Поле = Поле + 1;

         Инд = Найти(Стр, "-");

         Если Инд > 0 Тогда

            Стр1 = Сред(Стр, 2, Инд - 3);

            Стр = Сред(Стр, Инд + 1);

         Иначе

            Стр1 = Сред(Стр, 2, (СтрДлина(Стр) - 2));

            Стр = "";

         КонецЕсли;

         Если Поле = 1 Тогда

            Код = Стр1;

         ИначеЕсли Поле = 2 Тогда

            Имя = Стр1;

         КонецЕсли;

      КонецЦикла;

      Прод.НоваяГруппа();

      Сообщить(Формат(Ном, "ЧЗ") + "-загрузка: " + Формат(Код, "45") + ":" + Имя);

      Прод.Наименование = Имя;

      Прод.Код = Число(Код);

      Прод.Записать();

      Сообщить(" — Загружен!");

   КонецЦикла;

КонецПроцедуры

ПолучитьСтроку

Полнить строку текста по номеру.

Синтаксис:

ПолучитьСтроку(<НомерСтроки>)

Англоязычный синоним:

GetLine

Параметры:

<НомерСтроки>

Числовое выражение — номер строки.

Возвращаемое значение:

Строковое значение — требуемая строка текста.

Описание:

Метод ПолучитьСтроку возвращает значение строки с номером <НомерСтроки>.

Пример:

Процедура Тест()

   Текст = СоздатьОбъект("Текст");

   Текст.Открыть(ИмяФайла);

   Если Текст.КоличествоСтрок() = 0 Тогда

      Предупреждение("Текст пустой!");

      Возврат;

   КонецЕсли;

   Для Ном = 1 по Текст.КоличествоСтрок() Цикл

      Стр = Текст.ПолучитьСтроку(Ном);

      Сообщить(Строка(Ном) + Стр);

   КонецЦикла;

КонецПроцедуры

Открыть

Открыть текстовый файл.

Синтаксис:

Открыть(<ИмяФайла>)

Англоязычный синоним:

Open

Параметры:

<ИмяФайла>

Строковое выражение — имя файла.

Описание:

Метод Открыть открывает файл с именем <ИмяФайла>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

Шаблон

Установить флаг добавления строк по шаблону.

Синтаксис:

Шаблон(<Флаг>)

Англоязычный синоним:

Template

Параметры:

<Флаг>

Необязательный параметр. Числовое выражение: 1 — установить флаг добавления строк по шаблону, 0 — отменить.

Возвращаемое значение:

Текущее числовое значение флага добавления строк по шаблону (на момент до исполнения метода).

Описание:

Метод Шаблон устанавливает флаг при котором все добавления строк в текст выполняются с заменой полей ограниченных квадратными скобками на значения содержащихся в них выражений (см. гл. «Системные процедуры и функции», функция Шаблон).

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.Шаблон(1);

ТекстДок.ЗаменитьСтроку(52, "[Услуга.Наименование],

                        арт.[Услуга.Код]......[Услуга.Цена]");

ТекстДок.Шаблон(0);

ТекстДок.ВставитьСтроку(53, "Вывоз мусора, 6321, 58.000");

ТекстДок.ТолькоПросмотр(1);

См. также: «Системные процедуры и функции», функция Шаблон

ФиксШаблон

Установить флаг добавления строк по фиксированному шаблону.

Синтаксис:

ФиксШаблон(<Флаг>)

Англоязычный синоним:

FixTemplate

Параметры:

<Флаг>

Числовое выражение: 1 — установить флаг добавления строк по фиксированному шаблону, 0 — снять флаг.

Возвращаемое значение:

Текущее числовое значение флага добавления строк по фиксированному шаблону (на момент до исполнения метода).

Описание:

Метод ФиксШаблон устанавливает флаг при котором все добавления строк в текст выполняются с заменой полей ограниченных квадратными скобками на значения содержащихся в них выражений (см. гл. «Системные процедуры и функции», функция ФиксШаблон).

В отличие от метода Шаблон, ограниченные квадратными скобками поля замещаются значениями выражений с сохранением своей длины в символах, то есть обрезаются, если поле короче результата вычисления выражения и дополняются пробелами если длиннее. Если результат числовой, то в границах поля строка прижимается к правой границе.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ФиксШаблон(1);

ТекстДок.ЗаменитьСтроку(52, "[Услуга.Наименование],

                             арт.[Услуга.Код]......[Услуга.Цена]");

ТекстДок.Шаблон(0);

ТекстДок.ВставитьСтроку(53, "Вывоз мусора, 6321, 58.000");

ТекстДок.ТолькоПросмотр(1);

См. также: «Системные процедуры и функции», функция ФиксШаблон

ВставитьСтроку

Вставить строку с указанным номером.

Синтаксис:

ВставитьСтроку(<НомерСтроки>, <Строка>)

Англоязычный синоним:

InsertLine

Параметры:

<НомерСтроки>

Числовое выражение — номер вставляемой строки.

<Строка>

Строковое выражение.

Описание:

Метод ВставитьСтроку вставляет в текст строку <Строка> с номером <НомерСтроки>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ЗаменитьСтроку(52, "Установка оборудоввания 3456......" + Стоимость);

ТекстДок.ВставитьСтроку(53, "Замена оборудования 5691... ");

ТекстДок.ТолькоПросмотр(1);

ДобавитьСтроку

Добавить строку в конец текста.

Синтаксис:

ДобавитьСтроку(<Строка>)

Англоязычный синоним:

AddLine

Параметры:

<Строка>

Строковое выражение.

Описание:

Метод ДобавитьСтроку добавляет в конец текста строку <Строка>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ДобавитьСтроку("Работы ..., 3056 ..75 000 руб.");

ТекстДок.ТолькоПросмотр(1).

ЗаменитьСтроку

Заменить строку с указанным номером.

Синтаксис:

ЗаменитьСтроку(<НомерСтроки>, <Строка>)

Англоязычный синоним:

ReplaceLine

Параметры:

<НомерСтроки>

Числовое выражение — номер замещаемой строки.

<Строка>

Строковое выражение.

Описание:

Метод ЗаменитьСтроку замещает строку текста с номером <НомерСтроки> на строку <Строка>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ЗаменитьСтроку(52, "Работы ..., 3056 ..75 000 руб.");

ТекстДок.ТолькоПросмотр(1).

УдалитьСтроку

Удалить строку с указанным номером.

Синтаксис:

УдалитьСтроку(<НомерСтроки>)

Англоязычный синоним:

DeleteLine

Параметры:

<НомерСтроки>

Числовое выражение — номер удаляемой строки.

Описание:

Метод УдалитьСтроку удаляет из текста строку с номером <НомерСтроки>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.УдалитьСтроку(5 3);

ТолькоПросмотр

Установить режима редактирования текста.

Синтаксис:

ТолькоПросмотр(<Режим>)

Англоязычный синоним:

Readonly

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — запрещено редактирование текста, 0 — разрешено редактирование текста.

Возвращаемое значение:

Текущее числовое значение режима редактирования текста (на момент до исполнения метода).

Описание:

Метод ТолькоПросмотр позволяет установить режим редактирования текста в окне редактирования.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ТолькоПросмотр(1);

ТекстДок.Показать("Редактирование Прайс-листа", "catalog.txt");

Показать

Открыть окно редактирования текста.

Синтаксис:

Показать(<3аголовок>, <ИмяФайла>)

Англоязычный синоним:

Show

Параметры:

<Заголовок>

Заголовок окна редактирования.

<ИмяФайла>

Строковое выражение с именем файла.

Описание:

Метод Показать открывает окно с текстом для редактирования и просмотра. Если параметр <ИмяФайла> имеет непустое значение, то при закрытии окна система будет предлагать сохранить данные в указанный файл. Если файла с именем <ИмяФайла> не существует, то будет создан новый файл с таким именем для сохранения текста. Если параметр <ИмяФайла> опущен или имеет пустое значение, то при закрытии окна система не будет предлагать сохранить данные в файл. Это имеет смысл для текстовых документов, которые формируются только для просмотра или печати, и их не обязательно записывать в файл. Разумеется, после открытия окна пользователь в любом случае может записать такой текст в файл, используя команды главного меню «Файл».

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.Показать("Редактирование Прайс-листа", "catalog.txt");

Очистить

Очищает содержимое текстового документа.

Синтаксис:

Очистить()

Англоязычный синоним:

Clear

Описание:

Метод Очистить очищает содержимое текстового документа. Его использование позволяет заново заполнить содержимое текстового документа.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.Очистиь();

КодоваяСтраница

Установить/определить режим кодировки.

Синтаксис:

КодоваяСтраница(<Режим>)

Англоязычный синоним:

SetCodePage

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 0 — Windows-кодировка, 1 — DOS-кодировка. Если параметр не задан, то режим кодировки не меняется (используется для определения текущего режима кодировки без его смены).

Возвращаемое значение:

Текущее числовое значение режима кодировки (на момент до исполнения метода).

Описание:

Метод КодоваяСтраница позволяет установить режим кодировки для чтения и записи строковых значений в файл.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.КодоваяСтраница(0);

ТекстДок.Открыть("catalog.txt");

ТекстДок.Показать("Редактирование Прайс-листа", "catalog.txt");

Записать

Записать текст в файл с указанным именем.

Синтаксис:

Записать(<ИмяФайла>)

Англоязычный синоним:

Write

Параметры:

<ИмяФайла>

Строковое выражение — имя файла.

Описание:

Метод Записать записывает текст в файл с именем <ИмяФайла>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.Записать("price.txt");







Перейти  к оглавлению: Описание встроенного языка