|
Помогите файл расшифровать | ☑ | ||
---|---|---|---|---|
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 диски на комп Бббгбгбгггггг
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |