Открывает текстовый файл или поток для чтения.
Синтаксис
Открыть(<ИмяФайла>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>, <МонопольныйРежим>)Открыть(<Поток>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>)Примеры платформы
Текст.Открыть("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.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте учебную файловую базу под Windows. Служебная учётная запись 1С должна иметь доступ к своему временному каталогу.
Пример создаёт только уникальные учебные файлы через ПолучитьИмяВременногоФайла. Не подставляйте пути к рабочим документам.
Все текстовые файлы читаются с явно указанной кодировкой UTF-8. Пустая строка не означает конец файла.
ИмяФайла = ПолучитьИмяВременногоФайла("txt");
Чтение = Неопределено;
Попытка
Документ = Новый ТекстовыйДокумент;
Документ.УстановитьТекст("Книга123");
Документ.Записать(ИмяФайла, КодировкаТекста.UTF8);
Чтение = Новый ЧтениеТекста;
Чтение.Открыть(ИмяФайла, КодировкаТекста.UTF8);
ВосстановленныйТекст = "";
Порция = Чтение.Прочитать(3);
Пока Порция <> Неопределено Цикл
Сообщить("[" + Порция + "]");
ВосстановленныйТекст = ВосстановленныйТекст + Порция;
Порция = Чтение.Прочитать(3);
КонецЦикла;
Если ВосстановленныйТекст <> "Книга123" Тогда
ВызватьИсключение "Текст восстановлен неверно";
КонецЕсли;
Чтение.Закрыть();
Чтение = Неопределено;
УдалитьФайлы(ИмяФайла);
Исключение
Если Чтение <> Неопределено Тогда
Чтение.Закрыть();
КонецЕсли;
УчебныйФайл = Новый Файл(ИмяФайла);
Если УчебныйФайл.Существует() Тогда
УдалитьФайлы(ИмяФайла);
КонецЕсли;
ВызватьИсключение;
КонецПопытки;Разбор по шагам
ТекстовыйДокумент сохраняет заранее известный текст в уникальный файл.
Неинициализированное чтение открываем методом Открыть с UTF-8.
Прочитать(3) возвращает очередные три символа; последняя порция может быть короче.
Соединяем порции и сравниваем с исходным текстом, затем закрываем чтение и очищаем свой файл.
Как проверить результат
Ожидаемые порции: [Кни], [га1], [23]; итог Книга123.
Замените 3 на 1: итог не меняется, но порций будет восемь.
Не задавайте размер 0: это не полезная порция и может привести к отсутствию продвижения чтения.
Ожидаемый результат
Из порций восстановлены ровно восемь символов исходного текста.
На что обратить внимание
Текстовые символы и число байтов UTF-8 — разные величины. Для двоичных протоколов используйте ЧтениеДанных или поток.
Конкатенация всех порций показана ради проверки небольшого текста; большие файлы обрабатывайте постепенно, не накапливая их целиком.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.