Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
Всем привет! Есть несколько структур-компонент, выбор структуры зависит от некоторого условия (от флага 1/2/3...) Реально ли в самой программе создать структуру, которая будет включать в себя какой-то набор структур-компонент, соответствующий значению флага? Пример: Если первый байт заголовка файла = 1, то в структуре должны быть структура "Время", "Имя", а если = 2, то "Время", "ФИО", "Количество строк" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2014, 15:23 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
union? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2014, 15:28 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, ээээ... почитаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2014, 15:31 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
авторЕсть несколько структур-компонент, В С++ нет понятия "компонент". авторРеально ли в самой программе создать структуру, которая будет включать в себя какой-то набор структур-компонент, соответствующий значению флага? Реально. авторЕсли первый байт заголовка файла = 1, то в структуре должны быть структура "Время", "Имя", а если = 2, то "Время", "ФИО", "Количество строк" Реально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2014, 16:16 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovunion? union на самом деле может быть и ни при чём тут. Можно делать через union, можно делать и без union. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2014, 16:17 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
ioscat, коробочное решение этого вопроса - полиморфизм. А то что ты делаешь это жуткая экономия на спичках. Она полезна когда много данных сериализируются на диск или в базу например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2014, 16:25 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
On 11.07.2014 17:25, mayton wrote: > ioscat, коробочное решение этого вопроса - полиморфизм. А то что ты делаешь > это жуткая экономия на спичках. Она полезна когда много данных > сериализируются > на диск или в базу например. Ну, как бы я уже пытался намекнуть, что union для записи в и чтения из файла не нужен. Нужны полиморфные операции чтения и записи (причём они нужны и при наличии union в памяти, и при его отсутствии). union нужен для экономии размещения этого дела именно в памяти, притом только в случае, если структуры маленькие и накладные расходы в виде одного указателя на структуру (четыре байта) неприемлимы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2014, 17:18 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
Так, попробую более точно сказать, что мне нужно: Есть данные в виде dataFlag 3 bytes timecode 4 bytes dataID 3 bytes data * - if data[0] = 0 - - 1 byte - if data[0] = 1 - - dataSize 2 bytes - - dataCode 1 byte -if data[0] = 2 - - dataSize 2 bytes - - dataValue 4 bytes То есть от того, какие флаги стоят в полях, меняется состав сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2014, 19:00 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
ioscatТо есть от того, какие флаги стоят в полях, меняется состав сообщения. Ну и? Сначала читаешь общую часть структуры, анализируешь флаги, дочитываешь переменную. В чём проблема-то? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2014, 19:15 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, как всё это в одну структуру считать? по идее в структуре должны быть разные составляющие, а как её создать в программе? или создать разные на все случаи жизни? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 09:22 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
ioscatкак всё это в одну структуру считать? по идее в структуре должны быть разные составляющие, а как её создать в программе? или создать разные на все случаи жизни? Делай как удобнее. Про union тебе уже сказали. Я скажу ещё про наследование. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 11:49 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
как всё это в одну структуру считать? ПОЭЛЕМЕНТНО. по идее в структуре должны быть разные составляющие, а как её создать в программе? Когда ты читаешь и не знаешь ещё, какая будет структура, читай во временное хранилище. Потом создавай нужную структуру и копируй туда уже начитанное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 12:45 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
MasterZiv Когда ты читаешь и не знаешь ещё, какая будет структура, читай во временное хранилище. Потом создавай нужную структуру и копируй туда уже начитанное. Вот тут встрял, как создать нужную структуру? Вставка switch в структуру не удаётся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 14:32 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
ioscatMasterZivКогда ты читаешь и не знаешь ещё, какая будет структура, читай во временное хранилище. Потом создавай нужную структуру и копируй туда уже начитанное. Вот тут встрял, как создать нужную структуру? Вставка switch в структуру не удаётся. Объяви 20 или сколько нужно нужных структур с финальной их конфигурацией в памяти. Все вариации. И создавай одну из них , malloc или new -- как угодно. После этого начитывай в неё данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 14:59 |
|
||
|
Условие для создания структуры
|
|||
|---|---|---|---|
|
#18+
MasterZiv, вот этого я и хотел избежать =( Спасибо всем за помощь! =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 15:12 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38695626&tid=2019371]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 171ms |

| 0 / 0 |
