0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 49
|
||||||
1 | ||||||
Как организовать чтение файла содержащего разнотипные структуры?09.08.2017, 18:09. Показов 968. Ответов 25
Метки нет (Все метки)
Задача следующая есть файл внутренняя структура которого зависит от его же внутренних полей.
Вот простенький пример:
Совет по типу прочитай сначала флаг, а потом уже заполняй тот или иной вектор не пойдет. Ибо это всего лишь пример, на деле полей, которые задают дальнейшию типизацию данных может быть много в одном файле и разбросаны по файлу.
0
|
09.08.2017, 18:09 | |
Ответы с готовыми решениями:
25
Как организовать чтение из файла Чтение из файла (как организовать проверку на ошибку чтения?) Чтение txt файла, содержащего массив структур как можно организовать чтение файла Word (*.doc, *.rtf) в PHP? |
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 49
|
|
09.08.2017, 18:17 [ТС] | 2 |
Ну например формат хранения геоданных SXF.
0
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 49
|
|
09.08.2017, 18:43 [ТС] | 5 |
первые 4 байт - это int в котором содержится количество записей в файле
пятый байт файла содержит информацию о том набор каких данных будет идти далее если 0 то за ним идет набор записей, каждая запись состоит из 2 целых числа типа int если 1 то за ним идет набор записей, каждая запись состоит из 3 чисел с плавающей запятой типа double ради примера)
0
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 49
|
|
09.08.2017, 19:51 [ТС] | 8 |
Это и имелось в виду. "Записями" в данном контексте называется то что идет после 5 байта
Добавлено через 2 минуты Но как их хранить в одном std::vector<type1 или type2> data в зависимости от флага, а не заводить два разных std::vector<type1> data1 и std::vector<type2> data2 внутри одной структуры?
0
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 49
|
|
09.08.2017, 19:52 [ТС] | 10 |
верно поняли.
0
|
Неэпический
|
||||||
09.08.2017, 19:56 | 12 | |||||
Сыро:
0
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 49
|
|
09.08.2017, 20:08 [ТС] | 13 |
И уточнение. Конкретном файле хранятся либо только блоки type1, либо блоки type2. Одновременно внутри одно файла оба типа существовать не могут.
Добавлено через 6 минут Это все хорошо, но если int_data будет занимать например 8 байт, а real_data к примеру 256. То union то будет 256 не зависимо от того что мы храним( Добавлено через 4 минуты Или еще хуже не дай бог один из типов внутри например структуры int_data будет класс, так union заругается на конструктор
0
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 49
|
|
09.08.2017, 20:24 [ТС] | 16 |
проблема все в том же, как не зависимо от типа блоков обращаться к ним через одно имя data
Добавлено через 1 минуту Согласен, не полно описал вопрос. Извините.
0
|
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
09.08.2017, 20:47 | 17 |
0
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 49
|
|
09.08.2017, 20:50 [ТС] | 18 |
все обращение ограничены только методами std::vector.
думаю методов at и pushback будет достаточно
0
|
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
09.08.2017, 20:53 | 19 |
достаточно для чего? Вызвали вы at. что дальше? Как вы собираетесь обрабатывать эти данные?
0
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 49
|
|
09.08.2017, 20:54 [ТС] | 20 |
уже непосредственно буду смотреть на флаг и понимать какие данные там лежат и как к ним обращаться
0
|
09.08.2017, 20:54 | |
09.08.2017, 20:54 | |
Помогаю со студенческими работами здесь
20
Как мне организовать чтение из файла числовых данных (не текста) и записать в переменную Запись структуры и чтение из файла в структуру ( как бы лучше ) Чтение чисел из файла, содержащего концевые пробелы и переносы строк. Как организовать сериализацию экземпляров класса, содержащего список? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |