Определение типа структуры

 

Приветствую всех.

Суть вопроса:  есть bin-файл, в который записан массив структуры, тип записанной структуры т.е. число и тип её элементов неизвестен. Чтобы прочитать файл его можно прочитать снова в структуру, но для этого надо знать число и тип её элементов, иначе будет потеря данных, перемешивание значений массива структуры и т.д..

Так вот вопрос - можно ли по содержимому файла либо по его размеру в байтах либо ещё как, узнать число и тип  элементов записанной структуры.

 
этож бинарник.... там просто не должно быть ничего лишнего кроме того что мы туда отправляем... Так что проще изначально говорить самому сколько там чего - в первых байтах
 
Sergey Kolemanov:

Приветствую всех.

Суть вопроса:  есть bin-файл, в который записан массив структуры, тип записанной структуры т.е. число и тип её элементов неизвестен. Чтобы прочитать файл его можно прочитать снова в структуру, но для этого надо знать число и тип её элементов, иначе будет потеря данных, перемешивание значений массива структуры и т.д..

Так вот вопрос - можно ли по содержимому файла либо по его размеру в байтах либо ещё как, узнать число и тип  элементов записанной структуры.

Очевидны только string

 
STARIJ:

Очевидны только string


это если без xor-ки )

 

Из файла ты можешь прочесть только то, что в него запишешь. Раз там информации о самой структуре нет - ты и прочесть ее не можешь.

 
George Merts:

Из файла ты можешь прочесть только то, что в него запишешь. Раз там информации о самой структуре нет - ты и прочесть ее не можешь.


Ясно.

Спасибо всем кто откликнулся.

 

Ну, можно пытаться подобрать порядок полей, искать повторения, проверять на разных кусках файла.

Если внутри что-то ценное, и с автором связи нет.

 
Sergey Kolemanov:

Приветствую всех.

Суть вопроса:  есть bin-файл, в который записан массив структуры, тип записанной структуры т.е. число и тип её элементов неизвестен. Чтобы прочитать файл его можно прочитать снова в структуру, но для этого надо знать число и тип её элементов, иначе будет потеря данных, перемешивание значений массива структуры и т.д..

Так вот вопрос - можно ли по содержимому файла либо по его размеру в байтах либо ещё как, узнать число и тип  элементов записанной структуры.

Попробуй открыть бинарник в шестнадцатиричном редакторе и посмотреть есть ли периодичность hex чисел. Если периодичность есть - то обычно она совпадает с размером структуры, зная который уже можно вычислить размер ее полей. 

 
Sergey Kolemanov:

Приветствую всех.

Суть вопроса:  есть bin-файл, в который записан массив структуры, тип записанной структуры т.е. число и тип её элементов неизвестен. Чтобы прочитать файл его можно прочитать снова в структуру, но для этого надо знать число и тип её элементов, иначе будет потеря данных, перемешивание значений массива структуры и т.д..

Так вот вопрос - можно ли по содержимому файла либо по его размеру в байтах либо ещё как, узнать число и тип  элементов записанной структуры.


Наверное, все же массив структур?

Если там простые типы данных и структура не сложная, можно использовать HEX редактор. Мне некотором опыте можно отличить int от double и int64

 
Alexey Volchanskiy:

Наверное, все же массив структур?

struct My_St
{
   datetime time; 
   int signal;    
   double tp;     
   double sl;     
};
My_St st[];

Вот примерно такой массив структуры был записан в файл, только элементов было побольше. Как правильно, массив структуры или массив структур, честно я не знаю. )



Если там простые типы данных и структура не сложная, можно использовать HEX редактор. Мне некотором опыте можно отличить int от double и int64

Такой же способ предложил Vasiliy Sokolov, но к сожалению я его не проверял т.к. на тот момент файл уже был прочитан. Решил подбором элементов структур(ы) и дальнейшей распечаткой значений массива, но Вам за предложенный способ всё равно спасибо, может здесь кому ещё пригодится.