Имя: Пароль:
1C
1С v8
Конвертор
0 Roman4eg
 
03.09.13
14:42
Помогите превратить левую часть в правую (hex to binary).
Скриншот ниже...
1 Alex S D
 
03.09.13
14:45
(0) на сколько ниже ?
2 Roman4eg
 
03.09.13
14:45
3 Alex S D
 
03.09.13
14:46
вот хакер...
4 skunk
 
03.09.13
14:46
ничего не понял ... тебе b2 нужно сделать?
5 Wobland
 
03.09.13
14:46
6 palpetrovich
 
03.09.13
14:46
тебе что "hex to binary" надо сделать? именно на в8?
7 Roman4eg
 
03.09.13
14:47
Да есть строка с hex значением, а мне нужно это значение в чистый бинарик превратить и сформировать из него файло.
8 Roman4eg
 
03.09.13
14:48
именно в 8.2
9 palpetrovich
 
03.09.13
14:51
дык, яндекс знает как, а ты - знаешь как это перевести на язык 1с ...или должен знать ;)
10 le_
 
03.09.13
14:54
(0) Если бы там была не строка, а ДвоичныеДанные, то просто Записать(). Строку, как двоичные данные из 1С-ки не записать.
11 skunk
 
03.09.13
15:01
а там точно строка?
12 Roman4eg
 
03.09.13
15:02
Да :)
13 Wobland
 
03.09.13
15:05
автор знает, как работает шестнадцатеричный редактор. я в это твёрдо верю
14 palpetrovich
 
03.09.13
15:09
(10)  а че, одинэснику слабО по строке посимвольно пройтись? :)
15 Roman4eg
 
03.09.13
15:11
Может у кого есть более крутой способ, так как представляете строку 20мб файла? а если таких строк 100?
16 palpetrovich
 
03.09.13
15:13
(15) если тебе необязательно в 1с, то пробуй так:
17 palpetrovich
 
03.09.13
15:13
Последовательность действий в WinHEX такова:
1. открываем файл
2. выделяем его полностью
3. жмём Edit - Convert
4. в открывшемся окошке выбираем Intel HEX -> binary (или HEX ASCII -> binary, в зависимости от формата), жмём ОК
5. на вопрос "округлить размер файла?" отвечаем отказом
6. сохраняем полученный файл где надо под нужным именем
цы(не моё)
18 Roman4eg
 
03.09.13
15:16
Только в 1С
19 Бертыш
 
03.09.13
15:22
В восьмерке не сталкивался, а в 7.7 юзали для таких задач внешние компоненты. Хотя навскидку опять же в восьмерке это сделать элементарно и без внешних компонент. Правда геморно очень.
20 Бертыш
 
03.09.13
15:23
(18) Вирус пишешь?
21 Roman4eg
 
03.09.13
15:23
Нет))
22 Бертыш
 
03.09.13
15:26
(21) :))))
23 Бертыш
 
03.09.13
15:28
Тебя спасет 256 двоичных макетов в обработке
24 Бертыш
 
03.09.13
15:30
Каждый размером один байт. Ну и клей из них чего тебе надобно на здоровье
25 palpetrovich
 
03.09.13
16:21
о, нарисовал на коленке, на оптимальность не претендую :)

    ТЗ16 = Новый ТаблицаЗначений;
    ТЗ16.Колонки.Добавить("ХЕКС");
    ТЗ16.Колонки.Добавить("БИН");
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "0";     НовСтрока.БИН = "0000";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "1";     НовСтрока.БИН = "0001";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "2";     НовСтрока.БИН = "0100";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "3";     НовСтрока.БИН = "0011";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "4";     НовСтрока.БИН = "0100";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "5";     НовСтрока.БИН = "1001";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "6";     НовСтрока.БИН = "0110";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "7";     НовСтрока.БИН = "0111";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "8";     НовСтрока.БИН = "1000";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "9";     НовСтрока.БИН = "1001";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "A";     НовСтрока.БИН = "1010";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "B";     НовСтрока.БИН = "1011";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "C";     НовСтрока.БИН = "1100";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "D";     НовСтрока.БИН = "1101";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "E";     НовСтрока.БИН = "1110";
    НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "F";     НовСтрока.БИН = "1111";
    Если НЕ ЗначениеЗаполнено(Число16) Тогда
        Возврат;
    КонецЕсли;    
    Число16 = ВРЕГ(Число16);
    РезультатБИН = "";
    Для Инд = 1 По СтрДлина(Число16) Цикл
        ТекСимвол = Сред(Число16, Инд, 1);
        
        ТекБИН = ТЗ16.Найти(ТекСимвол, "ХЕКС");
        Если ТекБИН = Неопределено Тогда
            Сообщить("Фигня твой хекс");
            Возврат;
        КонецЕсли;
        РезультатБИН = РезультатБИН + ТекБИН.БИН;
    КонецЦикла;
    Сообщить(РезультатБИН);
26 palpetrovich
 
03.09.13
16:24
+25 упс, заменить для двойки на:
НовСтрока = ТЗ16.Добавить(); НовСтрока.ХЕКС = "2";     НовСтрока.БИН = "0010";
27 le_
 
03.09.13
16:29
(14)(25) И как будешь писать в бинарный файл?
28 palpetrovich
 
03.09.13
16:32
(27)  мне не надо, из хекс в бин перевел - и норм :)
29 le_
 
03.09.13
16:39
(28) А ТС надо. См. (7)
30 palpetrovich
 
03.09.13
16:44
(29) ну тогда ему вообще БИН не нужен, надо просто в WinHex-e создановый пустой файл, скопировать туда "строку со значением hex" и сохраниться :)
31 palpetrovich
 
03.09.13
16:44
* создановый = создать новый
32 Roman4eg
 
03.09.13
16:50
1200 файлов ~ 5Гб, сколько потребуется времени для сохраниения файлов WinHex`ом?))))))) Да и в задаче прописано что именно средствами 1С.
33 palpetrovich
 
03.09.13
16:52
(32) в какой такой задаче?  ...сохраняй (25) в текстовый файл, называй его *.bin  :)
...и это, 1С что, уже компилятор?