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

Новая тема
Есть ли в 1С возможность читать двоичный файл? Если его читать как текстовый - читается только одна строка 8 байт. Версия 1С 7.7
"Я не совсем понял, что есть двоичный файл?
Есть двоичная система исчисления. Если нужно, можно написать процедуру или функцию по конвертации символа полученого из текстового файла, например из десятичной системы в двоичную (т.к КодСимв("А") возвращает десятичный код символа):

Сначала нужно получить нужный символ из строки (Ч).
Можно использовать цикл с функцией "Ч=Сред(,,)"

Функция Перекодировка10в2(Ч)
Если Ч=0 Тогда Возврат "0000000000000000";
ИначеЕсли Ч=1 Тогда Возврат "0000000000000001";
ИначеЕсли Ч=2 Тогда Возврат "0000000000000010";
ИначеЕсли Ч=3 Тогда Возврат "0000000000000011";
.................................
................................. //Здесь нужно учесть, что после 16 сл. число 20! и т.д.
.................................
ИначеЕсли Ч=255 Тогда возврат "1111111111111111"

КонецЕсли;
КонецФункции

Можно, в целях оптимизации функции, разбить слово на два байта и отдельно каждый байт перекодировать.Например:
............
А=Лев(Ч,1);
Б=Прав(Ч,1);
В=Перекодировка8в2(А)+Перекодировка8в2(Б);
............

где "Ч" - это код символа, извлекаемого из текстового файла в 16-и ричном формате. Здесь, походу, придется, написать еще функцию перекодировки из десятичной системы в шестнадцатиричную.
Конкретной встроенной функции в конфигураторе нет."
Если открывать как текстовый то читается до кода "0" - что является признаком конца текстового файла.
Насколько мне известно такого варианта нет. выхода 2
1) написать свою компоненту
2) в двоичном файле заменить все встечающиеся коды "0" на "13" а для
правильной обработки создаёшь 2-ой файл, в котором будут прописываться
положения земены. т.е. смещение, где была замена
Точно. "0" - не учел. Это глобально усложняет задачу.
Вспомнил.

Можно использовать UUE кодирование.

А лучше немного по другому.
пишем небольшую програмку, которая на входе получает имя файла, а на выходе
пишет в текстовый.
Из 1С запускаем эту прогу и впадаем в спячку на некоторое время. Так как при запуске
приложения из 1С нет никаких средств для определения завершонности, то лучший выход
это ждать появления нужного нам текстового файла, как появиться так читать.
У меня такая идея:
Преобразовать файл данных в строку с разделителями, например:
было: 05 0F 00 2А ....
Стало:"05","0F","00","2А"...
1С-ка прекрасно понимает этот формат, только конвертер придется написать.
Можно использовать внешние компоненты с 1c.proclub.ru
Создайте внешнюю компоненнту на языках которые отлично справляются с этой задачей (С++, .Net) и загружайте как внешнюю компоненту.
Читают тему
(гостей: 1)

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