Обработка двоичных файлов

Новая тема
Есть ли в 1С возможность читать двоичный файл? Если его читать как текстовый - читается только одна строка 8 байт. Версия 1С 7.7
"Я не совсем понял, что есть двоичный файл?<br>Есть двоичная система исчисления. Если нужно, можно написать процедуру или функцию по конвертации символа полученого из текстового файла, например из десятичной системы в двоичную (т.к КодСимв("А") возвращает десятичный код символа):<br><br>Сначала нужно получить нужный символ из строки (Ч).<br>Можно использовать цикл с функцией "Ч=Сред(,,)"<br><br>Функция Перекодировка10в2(Ч)<br>Если Ч=0 Тогда Возврат "0000000000000000";<br>ИначеЕсли Ч=1 Тогда Возврат "0000000000000001";<br>ИначеЕсли Ч=2 Тогда Возврат "0000000000000010";<br>ИначеЕсли Ч=3 Тогда Возврат "0000000000000011";<br>.................................<br>................................. //Здесь нужно учесть, что после 16 сл. число 20! и т.д.<br>.................................<br>ИначеЕсли Ч=255 Тогда возврат "1111111111111111"<br><br>КонецЕсли;<br>КонецФункции<br><br>Можно, в целях оптимизации функции, разбить слово на два байта и отдельно каждый байт перекодировать.Например:<br>............<br>А=Лев(Ч,1);<br>Б=Прав(Ч,1);<br>В=Перекодировка8в2(А)+Перекодировка8в2(Б);<br>............<br><br>где "Ч" - это код символа, извлекаемого из текстового файла в 16-и ричном формате. Здесь, походу, придется, написать еще функцию перекодировки из десятичной системы в шестнадцатиричную.<br>Конкретной встроенной функции в конфигураторе нет."
Если открывать как текстовый то читается до кода "0" - что является признаком конца текстового файла.<br>Насколько мне известно такого варианта нет. выхода 2<br>1) написать свою компоненту<br>2) в двоичном файле заменить все встечающиеся коды "0" на "13" а для<br>правильной обработки создаёшь 2-ой файл, в котором будут прописываться<br>положения земены. т.е. смещение, где была замена
Точно. "0" - не учел. Это глобально усложняет задачу.
Вспомнил.<br><br>Можно использовать UUE кодирование.<br><br>А лучше немного по другому.<br>пишем небольшую програмку, которая на входе получает имя файла, а на выходе<br>пишет в текстовый.<br>Из 1С запускаем эту прогу и впадаем в спячку на некоторое время. Так как при запуске<br>приложения из 1С нет никаких средств для определения завершонности, то лучший выход<br>это ждать появления нужного нам текстового файла, как появиться так читать.<br>
У меня такая идея:<br>Преобразовать файл данных в строку с разделителями, например:<br>было: 05 0F 00 2А ....<br>Стало:"05","0F","00","2А"...<br>1С-ка прекрасно понимает этот формат, только конвертер придется написать.
Можно использовать внешние компоненты с 1c.proclub.ru
Создайте внешнюю компоненнту на языках которые отлично справляются с этой задачей (С++, .Net) и загружайте как внешнюю компоненту.

Читают тему

(гостей: 1)

Быстрый переход