ЧтениеТекста.Открыть

Методы · Open

Открывает текстовый файл или поток для чтения.

Синтаксис

Открыть(<ИмяФайла>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>, <МонопольныйРежим>)
Открыть(<Поток>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>)

Примеры платформы

Текст.Открыть("d:\dos.txt", КодировкаТекста.OEM);
Полное описание, параметры и ограничения

ЧтениеТекста.Открыть (TextReader.Open)

ЧтениеТекста (TextReader)

Открыть (Open)

Доступен, начиная с версии 8.0.

Вариант синтаксиса: Открыть файл

Синтаксис:
Открыть(<ИмяФайла>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>, <МонопольныйРежим>)
Параметры:

<ИмяФайла> (обязательный)
Тип: Строка.
Имя читаемого файла.

<Кодировка> (необязательный)
Тип: КодировкаТекста, Строка.
Определяет кодировку текста читаемого текстового файла (согласован с текстовым документом). Если параметр не задан, формат текста будет определен автоматически по сигнатуре BOM в начале файла; если сигнатура BOM в файле отсутствует, файл будет открыт в кодировке ANSI.

Кодировка может быть задана как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые названия кодировок:
UTF-8

UTF-16

UTF-16BE

UTF-16LE

ISO-8859-1

US-ASCII

gb18030

iso-8859-2

iso-8859-3

iso-8859-4

iso-8859-5

iso-8859-6

iso-8859-7

iso-8859-8

iso-8859-9

iso-8859-13

iso-8859-15

Shift_JIS

EUC-JP

Big5

Big5-HKSCS

GBK

GB2312

GB_2312-80

EUC-KR

KSC_5601

windows-949

windows-874

cp866

KOI8-R

KOI8-U

windows-1250

windows-1251

windows-1252

windows-1253

windows-1254

windows-1255

windows-1256

windows-1257

windows-1258

macintosh

x-mac-cyrillic

ISO-2022-JP

ISO-2022-KR

ISO-2022-CN

ISO-2022-CN-EXT

HZ-GB-2312

<РазделительСтрок> (необязательный)
Тип: Строка.
Указывает строку, являющуюся разделителем строк в читаемом файле.
Значение по умолчанию: ПС.

<КонвертируемыйРазделительСтрок> (необязательный)
Тип: Строка.
Указывает разделитель строк в файле при конвертации в стандартный перевод строк ПС.
Значение по умолчанию: ВК + ПС.

<МонопольныйРежим> (необязательный)
Тип: Булево.
Определяет режим открытия файла. Истина - монопольный, Ложь - разделяемый.
Значение по умолчанию: Истина.
Описание варианта метода:
Открывает текстовый файл для чтения в монопольном режиме.
Вариант синтаксиса: Установить поток

Синтаксис:
Открыть(<Поток>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>)
Параметры:

<Поток> (обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для чтения текста.

<Кодировка> (необязательный)
Тип: КодировкаТекста, Строка.
Определяет кодировку текста, читаемого из потока (согласован с текстовым документом). Если параметр не задан, формат текста будет определен автоматически по сигнатуре BOM в начале файла; если сигнатура BOM в файле отсутствует, файл будет открыт в кодировке ANSI.

Кодировка может быть задана как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые названия кодировок:
UTF-8

UTF-16

UTF-16BE

UTF-16LE

ISO-8859-1

US-ASCII

gb18030

iso-8859-2

iso-8859-3

iso-8859-4

iso-8859-5

iso-8859-6

iso-8859-7

iso-8859-8

iso-8859-9

iso-8859-13

iso-8859-15

Shift_JIS

EUC-JP

Big5

Big5-HKSCS

GBK

GB2312

GB_2312-80

EUC-KR

KSC_5601

windows-949

windows-874

cp866

KOI8-R

KOI8-U

windows-1250

windows-1251

windows-1252

windows-1253

windows-1254

windows-1255

windows-1256

windows-1257

windows-1258

macintosh

x-mac-cyrillic

ISO-2022-JP

ISO-2022-KR

ISO-2022-CN

ISO-2022-CN-EXT

HZ-GB-2312
.

<РазделительСтрок> (необязательный)
Тип: Строка.
Указывает строку, являющуюся разделителем строк в читаемом потоке.
Значение по умолчанию: ПС.

<КонвертируемыйРазделительСтрок> (необязательный)
Тип: Строка.
Указывает разделитель строк в потоке при конвертации в стандартный перевод строк ПС.
Значение по умолчанию: ВК + ПС.
Описание варианта метода:
Установить поток для чтения.
Описание:

Открывает текстовый файл или поток для чтения.

Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Пример:

Текст.Открыть("d:\dos.txt", КодировкаТекста.OEM);

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Прочитать текст порциями по три символа

Создаём известный текст и показываем, что размер порции ЧтениеТекста измеряется символами, а не байтами UTF-8.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте учебную файловую базу под Windows. Служебная учётная запись 1С должна иметь доступ к своему временному каталогу.

  2. Пример создаёт только уникальные учебные файлы через ПолучитьИмяВременногоФайла. Не подставляйте пути к рабочим документам.

  3. Все текстовые файлы читаются с явно указанной кодировкой UTF-8. Пустая строка не означает конец файла.


ИмяФайла = ПолучитьИмяВременногоФайла("txt");
Чтение = Неопределено;
Попытка
    Документ = Новый ТекстовыйДокумент;
    Документ.УстановитьТекст("Книга123");
    Документ.Записать(ИмяФайла, КодировкаТекста.UTF8);
    Чтение = Новый ЧтениеТекста;
    Чтение.Открыть(ИмяФайла, КодировкаТекста.UTF8);
    ВосстановленныйТекст = "";
    Порция = Чтение.Прочитать(3);
    Пока Порция <> Неопределено Цикл
        Сообщить("[" + Порция + "]");
        ВосстановленныйТекст = ВосстановленныйТекст + Порция;
        Порция = Чтение.Прочитать(3);
    КонецЦикла;
    Если ВосстановленныйТекст <> "Книга123" Тогда
        ВызватьИсключение "Текст восстановлен неверно";
    КонецЕсли;
    Чтение.Закрыть();
    Чтение = Неопределено;
    УдалитьФайлы(ИмяФайла);
Исключение
    Если Чтение <> Неопределено Тогда
        Чтение.Закрыть();
    КонецЕсли;
    УчебныйФайл = Новый Файл(ИмяФайла);
    Если УчебныйФайл.Существует() Тогда
        УдалитьФайлы(ИмяФайла);
    КонецЕсли;
    ВызватьИсключение;
КонецПопытки;

Разбор по шагам

  1. ТекстовыйДокумент сохраняет заранее известный текст в уникальный файл.

  2. Неинициализированное чтение открываем методом Открыть с UTF-8.

  3. Прочитать(3) возвращает очередные три символа; последняя порция может быть короче.

  4. Соединяем порции и сравниваем с исходным текстом, затем закрываем чтение и очищаем свой файл.

Как проверить результат

  1. Ожидаемые порции: [Кни], [га1], [23]; итог Книга123.

  2. Замените 3 на 1: итог не меняется, но порций будет восемь.

  3. Не задавайте размер 0: это не полезная порция и может привести к отсутствию продвижения чтения.

Ожидаемый результат

Из порций восстановлены ровно восемь символов исходного текста.

На что обратить внимание

  1. Текстовые символы и число байтов UTF-8 — разные величины. Для двоичных протоколов используйте ЧтениеДанных или поток.

  2. Конкатенация всех порций показана ради проверки небольшого текста; большие файлы обрабатывайте постепенно, не накапливая их целиком.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.