|   |   | 
| 
 | Помогите файл расшифровать | ☑ | ||
|---|---|---|---|---|
| 0
    
        RomaH naïve 23.12.19✎ 09:14 | 
        https://dl.dropboxusercontent.com/s/5wn86jknsy4j6gp/2019-12-23_09h12_53.png?dl=0
 вверху таблица которая зашифрована в файле сам файл: https://yadi.sk/d/SiBqLWr3lnFaAA как получить таблицу значений? | |||
| 1
    
        Djelf 23.12.19✎ 10:19 | 
        Блоб, как блоб...
 За Spectr0х00 идет 0х08000000 0х13030000 0х10000000 0х13030000 декодируем в обратном порядке байт 8 787 16 787 с округлением и смещением на 100, 787 -> 7.9 Spectr0х00 2 шт, во втором тоже смое, вот вся табличка из блоба и получена | |||
| 2
    
        RomaH naïve 23.12.19✎ 10:52 | 
        чё как?
 &НаКлиенте Процедура Прочитать(Команда) ИмяФайла = "C:\mbn\data\Иванов_И_703DE4E396C84E57A8C8A6AE84F1AFF3\vibro.svr"; ПоследовательностьНаме = Новый Массив(); ПоследовательностьНаме.Добавить(78); ПоследовательностьНаме.Добавить(97); ПоследовательностьНаме.Добавить(109); ПоследовательностьНаме.Добавить(101); ПоследовательностьНормИд = Новый Массив(); ПоследовательностьНормИд.Добавить(78); ПоследовательностьНормИд.Добавить(111); ПоследовательностьНормИд.Добавить(114); ПоследовательностьНормИд.Добавить(109); ПоследовательностьНормИд.Добавить(73); ПоследовательностьНормИд.Добавить(100); ПоследовательностьСпектр = Новый Массив(); ПоследовательностьСпектр.Добавить(83); ПоследовательностьСпектр.Добавить(112); ПоследовательностьСпектр.Добавить(101); ПоследовательностьСпектр.Добавить(99); ПоследовательностьСпектр.Добавить(116); ПоследовательностьСпектр.Добавить(114); ДД = Новый ДвоичныеДанные(ИмяФайла); Поток = ДД.ОткрытьПотокДляЧтения(); Буфер = Новый БуферДвоичныхДанных(ДД.Размер()); Поток.Прочитать(Буфер,0,ДД.Размер()); Буфер.ПрочитатьЦелое32(448); Текст = Новый ЧтениеТекста(Поток); ТТ = Текст.Прочитать(); НачалоСтроки = 0; НомерПроверки = 0; ЧитаемыйБайт = 0; Пока Истина Цикл Для Ш = ЧитаемыйБайт По ДД.Размер() - 1 Цикл Байт = Буфер[Ш]; Если НомерПроверки = ПоследовательностьНаме.ВГраница() Тогда ЧитаемыйБайт = Ш + 2; Прервать; КонецЕсли; Если Байт = ПоследовательностьНаме[НомерПроверки] Тогда НомерПроверки = НомерПроверки + 1; Продолжить; КонецЕсли; НомерПроверки = 0; КонецЦикла; Если ЧитаемыйБайт > ДД.Размер() - 1 Тогда Прервать; КонецЕсли; //Тут начало Наименования теста //Дальше NormId НомерПроверки = 0; Для Ш = ЧитаемыйБайт По ДД.Размер() - 1 Цикл Байт = Буфер[Ш]; Если НомерПроверки = ПоследовательностьНормИд.ВГраница() Тогда ЧитаемыйБайт = Ш + 2; Прервать; КонецЕсли; Если Байт = ПоследовательностьНормИд[НомерПроверки] Тогда НомерПроверки = НомерПроверки + 1; Продолжить; КонецЕсли; НомерПроверки = 0; КонецЦикла; Если ЧитаемыйБайт > ДД.Размер() - 1 Тогда Прервать; КонецЕсли; //Потом Spectr НомерПроверки = 0; Для Ш = ЧитаемыйБайт По ДД.Размер() - 1 Цикл Байт = Буфер[Ш]; Если НомерПроверки = ПоследовательностьСпектр.ВГраница() Тогда ЧитаемыйБайт = Ш + 2; Прервать; КонецЕсли; Если Байт = ПоследовательностьСпектр[НомерПроверки] Тогда НомерПроверки = НомерПроверки + 1; Продолжить; КонецЕсли; НомерПроверки = 0; КонецЦикла; Если ЧитаемыйБайт > ДД.Размер() - 1 Тогда Прервать; КонецЕсли; //ЧитаемСпектр //Количество Количество = 7; Длина = 4; Для л = 1 По Количество Цикл Спектр = Буфер.ПрочитатьЦелое32(ЧитаемыйБайт); ЧитаемыйБайт = ЧитаемыйБайт + 4; Значение = Буфер.ПрочитатьЦелое32(ЧитаемыйБайт); ЧитаемыйБайт = ЧитаемыйБайт + 4; Сообщить("" + Спектр + " - " + Значение); КонецЦикла; Если ЧитаемыйБайт > ДД.Размер() - 1 Тогда Прервать; КонецЕсли; КонецЦикла; КонецПроцедуры | |||
| 3
    
        Djelf 23.12.19✎ 11:05 | 
        (2) Нормально.
 Только у тебя жестко зашито Количество = 7 и Длина = 4 По виду 7 и 4 после NormId mbn5 в блобе лежит. А количество спектров (2) после VibrCount. | |||
| 4
    
        Lama12 23.12.19✎ 11:09 | 
        (2) В мемориз.     | |||
| 5
    
        RomaH naïve 23.12.19✎ 12:02 | 
        (3) это да - набросал что бы только понять что как
 правилен ли подход к чтению таких данных | |||
| 6
    
        Djelf 23.12.19✎ 12:11 | 
        (5) Это понятно. Я поэтому и написал что "нормально". Для первой итерации сойдет.
 В идеале нужно структуру описать и разбирать уже по ней, т.к. возможны варианты этого формата. А расковыривать структуру удобно в чем то типа 010Editor, HexEditorNeo или аналогах, правда они все платные, но и триалки хватит. | |||
| 8
    
        acht 24.12.19✎ 16:33 | 
        О, нам сейчас ботики ссылку на что-то скинут (:     | |||
| 9
    
        Kigo_Kigo 24.12.19✎ 16:51 | 
        (7) Вот и выросло поколение которое не умеет мапить CDA диски на  комп Бббгбгбгггггг     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |