Выполняет чтение двоичных данных до указанного маркера.
Синтаксис
ПрочитатьДо(<Маркер>)ПрочитатьДо(<Маркер>, <КодировкаТекста>)ПрочитатьДо(<Маркеры>, <КодировкаТекста>)Полное описание, параметры и ограничения
ЧтениеДанных.ПрочитатьДо (DataReader.ReadTo)
ЧтениеДанных (DataReader)
ПрочитатьДо (ReadTo)
Доступен, начиная с версии 8.3.9.
Вариант синтаксиса: Чтение до двоичного маркера
Синтаксис:
ПрочитатьДо(<Маркер>)
Параметры:
<Маркер> (обязательный)
Тип: БуферДвоичныхДанных.
Маркер, до которого выполняется чтение данных.
Описание варианта метода:
Читать двоичные данные до маркера, заданного как БуферДвоичныхДанных.
Вариант синтаксиса: Чтение до строкового маркера
Синтаксис:
ПрочитатьДо(<Маркер>, <КодировкаТекста>)
Параметры:
<Маркер> (обязательный)
Тип: Строка.
Маркер, до которого выполняется чтение.
<КодировкаТекста> (необязательный)
Тип: КодировкаТекста, Строка.
Кодировка текста для определения строковых маркеров в двоичном потоке.
Если параметр не установлен, используется кодировка, указанная для текущего экземпляра ЧтениеДанных.
Допустимые коды кодировок:
Adobe-Standard-Encoding - не поддерживается в веб-клиенте,
Big5 - не поддерживается в веб-клиенте,
Big5-HKSCS - не поддерживается в веб-клиенте,
BOCU-1 - не поддерживается в веб-клиенте,
CESU-8 - не поддерживается в веб-клиенте,
cp1006 - не поддерживается в веб-клиенте,
cp1025 - не поддерживается в веб-клиенте,
cp1097 - не поддерживается в веб-клиенте,
cp1098 - не поддерживается в веб-клиенте,
cp1112 - не поддерживается в веб-клиенте,
cp1122 - не поддерживается в веб-клиенте,
cp1123 - не поддерживается в веб-клиенте,
cp1124 - не поддерживается в веб-клиенте,
cp1125 - не поддерживается в веб-клиенте,
cp1131 - не поддерживается в веб-клиенте,
cp1386 - не поддерживается в веб-клиенте,
cp33722 - не поддерживается в веб-клиенте,
cp437 - не поддерживается в веб-клиенте,
cp737 - не поддерживается в веб-клиенте,
cp775 - не поддерживается в веб-клиенте,
cp850 - не поддерживается в веб-клиенте,
cp851 - не поддерживается в веб-клиенте,
cp852 - не поддерживается в веб-клиенте,
cp855 - не поддерживается в веб-клиенте,
cp856 - не поддерживается в веб-клиенте,
cp857 - не поддерживается в веб-клиенте,
cp858 - не поддерживается в веб-клиенте,
cp860 - не поддерживается в веб-клиенте,
cp861 - не поддерживается в веб-клиенте,
cp862 - не поддерживается в веб-клиенте,
cp863 - не поддерживается в веб-клиенте,
cp864 - не поддерживается в веб-клиенте,
cp865 - не поддерживается в веб-клиенте,
cp866 - не поддерживается в веб-клиенте,
CP868 - не поддерживается в веб-клиенте,
cp869 - не поддерживается в веб-клиенте,
cp874
cp875 - не поддерживается в веб-клиенте,
cp922 - не поддерживается в веб-клиенте,
cp930 - не поддерживается в веб-клиенте,
cp932 - не поддерживается в веб-клиенте,
cp933 - не поддерживается в веб-клиенте,
cp935 - не поддерживается в веб-клиенте,
cp937 - не поддерживается в веб-клиенте,
cp939 - не поддерживается в веб-клиенте,
cp949 - не поддерживается в веб-клиенте,
cp949c - не поддерживается в веб-клиенте,
cp950 - не поддерживается в веб-клиенте,
cp964 - не поддерживается в веб-клиенте,
ebcdic-ar - не поддерживается в веб-клиенте,
ebcdic-de - не поддерживается в веб-клиенте,
ebcdic-dk - не поддерживается в веб-клиенте,
ebcdic-he - не поддерживается в веб-клиенте,
ebcdic-xml-us - не поддерживается в веб-клиенте.
EUC-JP - не поддерживается в веб-клиенте,
EUC-KR - не поддерживается в веб-клиенте,
GB_2312-80 - не поддерживается в веб-клиенте,
gb18030 - не поддерживается в веб-клиенте,
GB2312 - не поддерживается в веб-клиенте,
GBK - не поддерживается в веб-клиенте,
hp-roman8 - не поддерживается в веб-клиенте,
HZ-GB-2312 - не поддерживается в веб-клиенте,
ibm-1047_P100-1995,swaplfnl - не поддерживается в веб-клиенте,
ibm-1129 - не поддерживается в веб-клиенте,
ibm-1130 - не поддерживается в веб-клиенте,
ibm-1132 - не поддерживается в веб-клиенте,
ibm-1133 - не поддерживается в веб-клиенте,
ibm-1137 - не поддерживается в веб-клиенте,
ibm-1140_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1142_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1143_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1144_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1145_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1146_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1147_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1148_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1149_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1153 - не поддерживается в веб-клиенте,
ibm-1153_P100-1999,swaplfnl - не поддерживается в веб-клиенте,
ibm-1154 - не поддерживается в веб-клиенте,
ibm-1155 - не поддерживается в веб-клиенте,
ibm-1156 - не поддерживается в веб-клиенте,
ibm-1157 - не поддерживается в веб-клиенте,
ibm-1158 - не поддерживается в веб-клиенте,
ibm-1160 - не поддерживается в веб-клиенте,
ibm-1162 - не поддерживается в веб-клиенте,
ibm-1164 - не поддерживается в веб-клиенте,
ibm-12712_P100-1998,swaplfnl - не поддерживается в веб-клиенте,
ibm-1363 - не поддерживается в веб-клиенте,
ibm-1364 - не поддерживается в веб-клиенте,
ibm-1371 - не поддерживается в веб-клиенте,
ibm-1388 - не поддерживается в веб-клиенте,
ibm-1390 - не поддерживается в веб-клиенте,
ibm-1399 - не поддерживается в веб-клиенте,
ibm-16684 - не поддерживается в веб-клиенте,
ibm-16804_X110-1999,swaplfnl - не поддерживается в веб-клиенте,
ibm-37_P100-1995,swaplfnl - не поддерживается в веб-клиенте,
ibm-4899 - не поддерживается в веб-клиенте,
ibm-4909 - не поддерживается в веб-клиенте,
ibm-4971 - не поддерживается в веб-клиенте,
ibm-5123 - не поддерживается в веб-клиенте,
ibm-803 - не поддерживается в веб-клиенте,
ibm-8482 - не поддерживается в веб-клиенте,
ibm-867 - не поддерживается в веб-клиенте,
ibm-901 - не поддерживается в веб-клиенте,
ibm-902 - не поддерживается в веб-клиенте,
ibm-971 - не поддерживается в веб-клиенте,
IBM-Thai - не поддерживается в веб-клиенте,
IBM01140 - не поддерживается в веб-клиенте,
IBM01141 - не поддерживается в веб-клиенте,
IBM01142 - не поддерживается в веб-клиенте,
IBM01143 - не поддерживается в веб-клиенте,
IBM01144 - не поддерживается в веб-клиенте,
IBM01145 - не поддерживается в веб-клиенте,
IBM01146 - не поддерживается в веб-клиенте,
IBM01147 - не поддерживается в веб-клиенте,
IBM01148 - не поддерживается в веб-клиенте,
IBM01149 - не поддерживается в веб-клиенте,
IBM037 - не поддерживается в веб-клиенте,
IBM1026 - не поддерживается в веб-клиенте,
IBM1047 - не поддерживается в веб-клиенте,
IBM278 - не поддерживается в веб-клиенте,
IBM280 - не поддерживается в веб-клиенте,
IBM284 - не поддерживается в веб-клиенте,
IBM285 - не поддерживается в веб-клиенте,
IBM290 - не поддерживается в веб-клиенте,
IBM297 - не поддерживается в веб-клиенте,
IBM367 ,
IBM420 - не поддерживается в веб-клиенте,
IBM424 - не поддерживается в веб-клиенте,
IBM500 - не поддерживается в веб-клиенте,
IBM870 - не поддерживается в веб-клиенте,
IBM871 - не поддерживается в веб-клиенте,
IBM918 - не поддерживается в веб-клиенте,
IMAP-mailbox-name - не поддерживается в веб-клиенте,
ISO_2022,locale=ja,version=3 - не поддерживается в веб-клиенте,
ISO_2022,locale=ja,version=4 - не поддерживается в веб-клиенте,
ISO_2022,locale=ko,version=1 - не поддерживается в веб-клиенте,
ISO-2022-CN - не поддерживается в веб-клиенте,
ISO-2022-CN-EXT - не поддерживается в веб-клиенте,
ISO-2022-JP - не поддерживается в веб-клиенте,
ISO-2022-JP-2 - не поддерживается в веб-клиенте,
ISO-2022-KR - не поддерживается в веб-клиенте,
ISO-8859-1 ,
iso-8859-13 ,
iso-8859-15 ,
iso-8859-2 ,
iso-8859-3 ,
iso-8859-4 ,
iso-8859-5 ,
iso-8859-6 ,
iso-8859-7 ,
iso-8859-8 ,
iso-8859-9 ,
JIS_Encoding - не поддерживается в веб-клиенте,
KOI8-R ,
KOI8-U ,
KSC_5601 - не поддерживается в веб-клиенте,
LMBCS-1 - не поддерживается в веб-клиенте,
LMBCS-11 - не поддерживается в веб-клиенте,
LMBCS-16 - не поддерживается в веб-клиенте,
LMBCS-17 - не поддерживается в веб-клиенте,
LMBCS-18 - не поддерживается в веб-клиенте,
LMBCS-19 - не поддерживается в веб-клиенте,
LMBCS-2 - не поддерживается в веб-клиенте,
LMBCS-3 - не поддерживается в веб-клиенте,
LMBCS-4 - не поддерживается в веб-клиенте,
LMBCS-5 - не поддерживается в веб-клиенте,
LMBCS-6 - не поддерживается в веб-клиенте,
LMBCS-8 - не поддерживается в веб-клиенте,
macintosh ,
SCSU - не поддерживается в веб-клиенте,
Shift_JIS - не поддерживается в веб-клиенте,
UTF-16 ,
UTF-16BE ,
UTF-16LE ,
UTF-32 - не поддерживается в веб-клиенте,
UTF-32BE - не поддерживается в веб-клиенте,
UTF-32LE - не поддерживается в веб-клиенте,
UTF-7 - не поддерживается в веб-клиенте,
UTF-8 ,
UTF16_OppositeEndian - не поддерживается в веб-клиенте,
UTF16_PlatformEndian - не поддерживается в веб-клиенте,
UTF32_OppositeEndian - не поддерживается в веб-клиенте,
UTF32_PlatformEndian - не поддерживается в веб-клиенте,
windows-1250 - не поддерживается в веб-клиенте,
windows-1251 ,
windows-1252 ,
windows-1253 ,
windows-1254 ,
windows-1255 ,
windows-1256 ,
windows-1257 ,
windows-1258 ,
windows-57002 - не поддерживается в веб-клиенте,
windows-57003 - не поддерживается в веб-клиенте,
windows-57004 - не поддерживается в веб-клиенте,
windows-57005 - не поддерживается в веб-клиенте,
windows-57007 - не поддерживается в веб-клиенте,
windows-57008 - не поддерживается в веб-клиенте,
windows-57009 - не поддерживается в веб-клиенте,
windows-57010 - не поддерживается в веб-клиенте,
windows-57011 - не поддерживается в веб-клиенте,
windows-874 - не поддерживается в веб-клиенте,
windows-949 - не поддерживается в веб-клиенте,
windows-950 - не поддерживается в веб-клиенте,
x-mac-centraleurroman - не поддерживается в веб-клиенте,
x-mac-cyrillic ,
x-mac-greek - не поддерживается в веб-клиенте,
x-mac-turkish - не поддерживается в веб-клиенте,
Значение по умолчанию: Неопределено.
Описание варианта метода:
Чтение двоичных данных до маркера, заданного строкой.
Вариант синтаксиса: Чтение до смешанного набора маркеров
Синтаксис:
ПрочитатьДо(<Маркеры>, <КодировкаТекста>)
Параметры:
<Маркеры> (обязательный)
Тип: Массив.
Массив, содержащий маркеры. Элементы массива могут иметь тип БуферДвоичныхДанных или Строка.
<КодировкаТекста> (необязательный)
Тип: КодировкаТекста, Строка.
Кодировка текста для определения строковых маркеров в двоичном потоке.
Если параметр не установлен, используется кодировка, указанная для текущего экземпляра ЧтениеДанных.
Допустимые коды кодировок:
Adobe-Standard-Encoding - не поддерживается в веб-клиенте,
Big5 - не поддерживается в веб-клиенте,
Big5-HKSCS - не поддерживается в веб-клиенте,
BOCU-1 - не поддерживается в веб-клиенте,
CESU-8 - не поддерживается в веб-клиенте,
cp1006 - не поддерживается в веб-клиенте,
cp1025 - не поддерживается в веб-клиенте,
cp1097 - не поддерживается в веб-клиенте,
cp1098 - не поддерживается в веб-клиенте,
cp1112 - не поддерживается в веб-клиенте,
cp1122 - не поддерживается в веб-клиенте,
cp1123 - не поддерживается в веб-клиенте,
cp1124 - не поддерживается в веб-клиенте,
cp1125 - не поддерживается в веб-клиенте,
cp1131 - не поддерживается в веб-клиенте,
cp1386 - не поддерживается в веб-клиенте,
cp33722 - не поддерживается в веб-клиенте,
cp437 - не поддерживается в веб-клиенте,
cp737 - не поддерживается в веб-клиенте,
cp775 - не поддерживается в веб-клиенте,
cp850 - не поддерживается в веб-клиенте,
cp851 - не поддерживается в веб-клиенте,
cp852 - не поддерживается в веб-клиенте,
cp855 - не поддерживается в веб-клиенте,
cp856 - не поддерживается в веб-клиенте,
cp857 - не поддерживается в веб-клиенте,
cp858 - не поддерживается в веб-клиенте,
cp860 - не поддерживается в веб-клиенте,
cp861 - не поддерживается в веб-клиенте,
cp862 - не поддерживается в веб-клиенте,
cp863 - не поддерживается в веб-клиенте,
cp864 - не поддерживается в веб-клиенте,
cp865 - не поддерживается в веб-клиенте,
cp866 - не поддерживается в веб-клиенте,
CP868 - не поддерживается в веб-клиенте,
cp869 - не поддерживается в веб-клиенте,
cp874
cp875 - не поддерживается в веб-клиенте,
cp922 - не поддерживается в веб-клиенте,
cp930 - не поддерживается в веб-клиенте,
cp932 - не поддерживается в веб-клиенте,
cp933 - не поддерживается в веб-клиенте,
cp935 - не поддерживается в веб-клиенте,
cp937 - не поддерживается в веб-клиенте,
cp939 - не поддерживается в веб-клиенте,
cp949 - не поддерживается в веб-клиенте,
cp949c - не поддерживается в веб-клиенте,
cp950 - не поддерживается в веб-клиенте,
cp964 - не поддерживается в веб-клиенте,
ebcdic-ar - не поддерживается в веб-клиенте,
ebcdic-de - не поддерживается в веб-клиенте,
ebcdic-dk - не поддерживается в веб-клиенте,
ebcdic-he - не поддерживается в веб-клиенте,
ebcdic-xml-us - не поддерживается в веб-клиенте.
EUC-JP - не поддерживается в веб-клиенте,
EUC-KR - не поддерживается в веб-клиенте,
GB_2312-80 - не поддерживается в веб-клиенте,
gb18030 - не поддерживается в веб-клиенте,
GB2312 - не поддерживается в веб-клиенте,
GBK - не поддерживается в веб-клиенте,
hp-roman8 - не поддерживается в веб-клиенте,
HZ-GB-2312 - не поддерживается в веб-клиенте,
ibm-1047_P100-1995,swaplfnl - не поддерживается в веб-клиенте,
ibm-1129 - не поддерживается в веб-клиенте,
ibm-1130 - не поддерживается в веб-клиенте,
ibm-1132 - не поддерживается в веб-клиенте,
ibm-1133 - не поддерживается в веб-клиенте,
ibm-1137 - не поддерживается в веб-клиенте,
ibm-1140_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1142_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1143_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1144_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1145_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1146_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1147_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1148_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1149_P100-1997,swaplfnl - не поддерживается в веб-клиенте,
ibm-1153 - не поддерживается в веб-клиенте,
ibm-1153_P100-1999,swaplfnl - не поддерживается в веб-клиенте,
ibm-1154 - не поддерживается в веб-клиенте,
ibm-1155 - не поддерживается в веб-клиенте,
ibm-1156 - не поддерживается в веб-клиенте,
ibm-1157 - не поддерживается в веб-клиенте,
ibm-1158 - не поддерживается в веб-клиенте,
ibm-1160 - не поддерживается в веб-клиенте,
ibm-1162 - не поддерживается в веб-клиенте,
ibm-1164 - не поддерживается в веб-клиенте,
ibm-12712_P100-1998,swaplfnl - не поддерживается в веб-клиенте,
ibm-1363 - не поддерживается в веб-клиенте,
ibm-1364 - не поддерживается в веб-клиенте,
ibm-1371 - не поддерживается в веб-клиенте,
ibm-1388 - не поддерживается в веб-клиенте,
ibm-1390 - не поддерживается в веб-клиенте,
ibm-1399 - не поддерживается в веб-клиенте,
ibm-16684 - не поддерживается в веб-клиенте,
ibm-16804_X110-1999,swaplfnl - не поддерживается в веб-клиенте,
ibm-37_P100-1995,swaplfnl - не поддерживается в веб-клиенте,
ibm-4899 - не поддерживается в веб-клиенте,
ibm-4909 - не поддерживается в веб-клиенте,
ibm-4971 - не поддерживается в веб-клиенте,
ibm-5123 - не поддерживается в веб-клиенте,
ibm-803 - не поддерживается в веб-клиенте,
ibm-8482 - не поддерживается в веб-клиенте,
ibm-867 - не поддерживается в веб-клиенте,
ibm-901 - не поддерживается в веб-клиенте,
ibm-902 - не поддерживается в веб-клиенте,
ibm-971 - не поддерживается в веб-клиенте,
IBM-Thai - не поддерживается в веб-клиенте,
IBM01140 - не поддерживается в веб-клиенте,
IBM01141 - не поддерживается в веб-клиенте,
IBM01142 - не поддерживается в веб-клиенте,
IBM01143 - не поддерживается в веб-клиенте,
IBM01144 - не поддерживается в веб-клиенте,
IBM01145 - не поддерживается в веб-клиенте,
IBM01146 - не поддерживается в веб-клиенте,
IBM01147 - не поддерживается в веб-клиенте,
IBM01148 - не поддерживается в веб-клиенте,
IBM01149 - не поддерживается в веб-клиенте,
IBM037 - не поддерживается в веб-клиенте,
IBM1026 - не поддерживается в веб-клиенте,
IBM1047 - не поддерживается в веб-клиенте,
IBM278 - не поддерживается в веб-клиенте,
IBM280 - не поддерживается в веб-клиенте,
IBM284 - не поддерживается в веб-клиенте,
IBM285 - не поддерживается в веб-клиенте,
IBM290 - не поддерживается в веб-клиенте,
IBM297 - не поддерживается в веб-клиенте,
IBM367 ,
IBM420 - не поддерживается в веб-клиенте,
IBM424 - не поддерживается в веб-клиенте,
IBM500 - не поддерживается в веб-клиенте,
IBM870 - не поддерживается в веб-клиенте,
IBM871 - не поддерживается в веб-клиенте,
IBM918 - не поддерживается в веб-клиенте,
IMAP-mailbox-name - не поддерживается в веб-клиенте,
ISO_2022,locale=ja,version=3 - не поддерживается в веб-клиенте,
ISO_2022,locale=ja,version=4 - не поддерживается в веб-клиенте,
ISO_2022,locale=ko,version=1 - не поддерживается в веб-клиенте,
ISO-2022-CN - не поддерживается в веб-клиенте,
ISO-2022-CN-EXT - не поддерживается в веб-клиенте,
ISO-2022-JP - не поддерживается в веб-клиенте,
ISO-2022-JP-2 - не поддерживается в веб-клиенте,
ISO-2022-KR - не поддерживается в веб-клиенте,
ISO-8859-1 ,
iso-8859-13 ,
iso-8859-15 ,
iso-8859-2 ,
iso-8859-3 ,
iso-8859-4 ,
iso-8859-5 ,
iso-8859-6 ,
iso-8859-7 ,
iso-8859-8 ,
iso-8859-9 ,
JIS_Encoding - не поддерживается в веб-клиенте,
KOI8-R ,
KOI8-U ,
KSC_5601 - не поддерживается в веб-клиенте,
LMBCS-1 - не поддерживается в веб-клиенте,
LMBCS-11 - не поддерживается в веб-клиенте,
LMBCS-16 - не поддерживается в веб-клиенте,
LMBCS-17 - не поддерживается в веб-клиенте,
LMBCS-18 - не поддерживается в веб-клиенте,
LMBCS-19 - не поддерживается в веб-клиенте,
LMBCS-2 - не поддерживается в веб-клиенте,
LMBCS-3 - не поддерживается в веб-клиенте,
LMBCS-4 - не поддерживается в веб-клиенте,
LMBCS-5 - не поддерживается в веб-клиенте,
LMBCS-6 - не поддерживается в веб-клиенте,
LMBCS-8 - не поддерживается в веб-клиенте,
macintosh ,
SCSU - не поддерживается в веб-клиенте,
Shift_JIS - не поддерживается в веб-клиенте,
UTF-16 ,
UTF-16BE ,
UTF-16LE ,
UTF-32 - не поддерживается в веб-клиенте,
UTF-32BE - не поддерживается в веб-клиенте,
UTF-32LE - не поддерживается в веб-клиенте,
UTF-7 - не поддерживается в веб-клиенте,
UTF-8 ,
UTF16_OppositeEndian - не поддерживается в веб-клиенте,
UTF16_PlatformEndian - не поддерживается в веб-клиенте,
UTF32_OppositeEndian - не поддерживается в веб-клиенте,
UTF32_PlatformEndian - не поддерживается в веб-клиенте,
windows-1250 - не поддерживается в веб-клиенте,
windows-1251 ,
windows-1252 ,
windows-1253 ,
windows-1254 ,
windows-1255 ,
windows-1256 ,
windows-1257 ,
windows-1258 ,
windows-57002 - не поддерживается в веб-клиенте,
windows-57003 - не поддерживается в веб-клиенте,
windows-57004 - не поддерживается в веб-клиенте,
windows-57005 - не поддерживается в веб-клиенте,
windows-57007 - не поддерживается в веб-клиенте,
windows-57008 - не поддерживается в веб-клиенте,
windows-57009 - не поддерживается в веб-клиенте,
windows-57010 - не поддерживается в веб-клиенте,
windows-57011 - не поддерживается в веб-клиенте,
windows-874 - не поддерживается в веб-клиенте,
windows-949 - не поддерживается в веб-клиенте,
windows-950 - не поддерживается в веб-клиенте,
x-mac-centraleurroman - не поддерживается в веб-клиенте,
x-mac-cyrillic ,
x-mac-greek - не поддерживается в веб-клиенте,
x-mac-turkish - не поддерживается в веб-клиенте,
Значение по умолчанию: Неопределено.
Описание варианта метода:
Чтение двоичных данных до одного из заданных маркеров. Маркеры определяются массивом, содержащим элементы типа БуферДвоичныхДанных или Строка.
Чтение выполняется до нахождения совпадения с маркером максимально возможной длины.
Возвращаемое значение:
Тип: РезультатЧтенияДанных.
Описание:
Выполняет чтение двоичных данных до указанного маркера.
Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение.
См. также:
ЧтениеДанных, метод НачатьЧтениеДо
ЧтениеДанных, метод ПрочитатьДоАсинх
ЧтениеДанных, метод Прочитать
Использование в версии:
Доступен, начиная с версии 8.3.9.
Описание изменено в версии 8.3.18.
Методическая информация
Практические примеры
Выделить значение до маркера и выбрать самый длинный совпадающий маркер
В строке KEY:Книга##TAIL маркеры # и ## совпадают в одном месте. Выбирается ##, а хвост читается отдельно.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте отдельную учебную базу. Фрагмент без директив вставьте в тело серверной процедуры ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.
Все исходные байты создаются самим примером в памяти. Файлы, сеть, справочники и документы не нужны.
Запускайте задачи отдельно. После закрытия ЧтениеДанных/ЗаписьДанных не используйте этот экземпляр повторно.
Данные = ПолучитьДвоичныеДанныеИзСтроки("KEY:Книга##TAIL", КодировкаТекста.UTF8, Ложь);
Чтение = Новый ЧтениеДанных(Данные, КодировкаТекста.UTF8);
Попытка
Маркеры = Новый Массив;
Маркеры.Добавить("#");
Маркеры.Добавить("##");
Значение = Чтение.ПрочитатьДо(Маркеры, КодировкаТекста.UTF8);
Если Не Значение.МаркерНайден Тогда
ВызватьИсключение "Не найден обязательный разделитель учебного сообщения";
КонецЕсли;
Сообщить(Значение.ИндексМаркера = 1);
ТекстЗначения = ПолучитьСтрокуИзБуфераДвоичныхДанных(Значение.ПолучитьБуферДвоичныхДанных(), КодировкаТекста.UTF8);
Сообщить(ТекстЗначения = "KEY:Книга");
Остаток = Чтение.ПрочитатьДо("НЕСУЩЕСТВУЮЩИЙ", КодировкаТекста.UTF8);
Сообщить(Не Остаток.МаркерНайден);
Сообщить(ПолучитьСтрокуИзДвоичныхДанных(Остаток.ПолучитьДвоичныеДанные(), КодировкаТекста.UTF8) = "TAIL");
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();Разбор по шагам
Массив хранит два маркера с нулевыми индексами 0 и 1.
ПрочитатьДо ищет ближайшую границу, а среди совпадений в этой позиции — маркер максимально возможной длины. Поэтому индекс 1 соответствует ##.
Сначала проверяем МаркерНайден, затем используем ИндексМаркера. Не полагаемся на индекс при отсутствии маркера.
Результат содержит данные перед границей, а не сам маркер. Следующее чтение начинается после ##.
Если второго заданного маркера нет, результат всё равно содержит остаток TAIL, но МаркерНайден равно Ложь. Это нужно обработать как отдельную ситуацию.
Как проверить результат
Первое значение KEY:Книга и индекс 1; второе значение TAIL без найденного маркера.
Все четыре сравнения Истина; обязательная граница не теряется среди коротких совпадений.
Ожидаемый результат
Разобрано сообщение с конкурирующими границами и отсутствующим маркером.
На что обратить внимание
Это учебный протокол, не готовый парсер HTTP multipart/CSV. Там есть дополнительные правила экранирования и границ.
Не декодируйте произвольный двоичный payload как UTF-8: кодировка относится к текстовой части.
ПолучитьБуферДвоичныхДанных загружает результат целиком в память; для больших частей используйте поток.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Открыть поток отдельной части и прочитать внутреннюю структуру
Из A-01|Книга#TAIL получаем часть до # и читаем её внутренние поля через отдельный поток. У оболочки и вложенного потока разные обязанности закрытия.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте отдельную учебную базу. Фрагмент без директив вставьте в тело серверной процедуры ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.
Все исходные байты создаются самим примером в памяти. Файлы, сеть, справочники и документы не нужны.
Запускайте задачи отдельно. После закрытия ЧтениеДанных/ЗаписьДанных не используйте этот экземпляр повторно.
Данные = ПолучитьДвоичныеДанныеИзСтроки("A-01|Книга#TAIL", КодировкаТекста.UTF8, Ложь);
ВнешнееЧтение = Новый ЧтениеДанных(Данные, КодировкаТекста.UTF8);
Попытка
Часть = ВнешнееЧтение.ПрочитатьДо("#", КодировкаТекста.UTF8);
Если Не Часть.МаркерНайден Тогда
ВызватьИсключение "Учебная часть не имеет конечной границы";
КонецЕсли;
Исключение
ВнешнееЧтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
ВнешнееЧтение.Закрыть();
ВнутреннийПоток = Часть.ОткрытьПотокДляЧтения();
ВнутреннееЧтение = Новый ЧтениеДанных(ВнутреннийПоток, КодировкаТекста.UTF8);
Попытка
Код = ВнутреннееЧтение.ПрочитатьДо("|", КодировкаТекста.UTF8);
Если Не Код.МаркерНайден Тогда
ВызватьИсключение "Учебная часть не имеет границы кода";
КонецЕсли;
Сообщить(ПолучитьСтрокуИзДвоичныхДанных(Код.ПолучитьДвоичныеДанные(), КодировкаТекста.UTF8) = "A-01");
Сообщить(ВнутреннееЧтение.ПрочитатьСимволы() = "Книга");
Исключение
ВнутреннееЧтение.Закрыть();
ВнутреннийПоток.Закрыть();
ВызватьИсключение;
КонецПопытки;
ВнутреннееЧтение.Закрыть();
ВнутреннийПоток.Закрыть();Разбор по шагам
Внешний читатель выделяет часть до # и проверяет её обязательную границу.
РезультатЧтенияДанных открывает собственный поток для чтения этой части. TAIL в него не входит.
Создаём новую оболочку ЧтениеДанных из потока, а не копируем всю часть в буфер.
Во внутренней структуре | отделяет код A-01 от названия Книга.
После использования закрываем сначала внутреннюю оболочку, затем переданный ей поток. Это поток, созданный нашим кодом, а не принадлежащий оболочке автоматически.
Как проверить результат
Оба сравнения Истина: внутренний код A-01, внутреннее название Книга.
Внутренний читатель не видит #TAIL и его ресурсы освобождаются также при исключении.
Ожидаемый результат
Разобрана вложенная структура части без полного промежуточного буфера.
На что обратить внимание
Не путайте ОткрытьПотокДляЧтения у ДвоичныеДанные и у РезультатЧтенияДанных: объекты разные.
Этот приём не гарантирует автоматически малое потребление памяти всей цепочки: источник здесь уже создан в памяти.
Не оставляйте самостоятельно открытый поток незакрытым после закрытия его оболочки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.