Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2012, 14:36   #1
Khayzenberg
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 54
По умолчанию несколько структур одна переменна

передо мной стоит задача, есть три (типа) структури и есть програма которая имеет всего одну переменную которая может принадлежать лишь одной структуре. Эта переменная должна являть собой чтото типа variant можно ли осуществить задачу?
Khayzenberg вне форума Ответить с цитированием
Старый 02.10.2012, 14:49   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
можно ли осуществить задачу?
конечно.
Код:
var P:pointer;
и никаких проблем)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 02.10.2012, 15:58   #3
Khayzenberg
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 54
По умолчанию

забыл упомянуть о том что данные в переменную я буду грузить с двоичного файла
Khayzenberg вне форума Ответить с цитированием
Старый 03.10.2012, 10:49   #4
Khayzenberg
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 54
По умолчанию

но все таки еще не придумал... Нагуглил одну вещь что можно создать свой вариант, или все таки может у кого лучше идея...
Khayzenberg вне форума Ответить с цитированием
Старый 03.10.2012, 11:05   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Вариант массива из 3-х указателей, не вариант?
Цитата:
var:
subj:array[0..2] of Pointer;
Человек_Борща вне форума Ответить с цитированием
Старый 03.10.2012, 12:52   #6
Khayzenberg
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 54
По умолчанию

еще более уточню задачу:
есть файл с него загружаются один блок, в переменную следующего типа:
type TElementFile = record
Element:TElement;
//тип данных в переменной
Size:integer;
//занимаемая память структурой
Data:TDataElement;
//этот тип должен иметь одну с 3 конструкций
Khayzenberg вне форума Ответить с цитированием
Старый 03.10.2012, 13:09   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А почему нельзя завести класс, который содержал бы внутри себя все три структуры? Подгружаешь туда свои данные и все. А он уже выдает только то что нужно.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 03.10.2012 в 13:12.
Utkin вне форума Ответить с цитированием
Старый 03.10.2012, 14:54   #8
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
еще более уточню задачу:
вы бы не уточняли, а один раз по-человечески написали: исходные данные - файл (и описывает примерную структуру и смысл этого файла) и что вы хотите с этими данными сделать - например, загрузить в ОЗУ разделив на блоки разных типов.

Я бы сделал так:
сделал динамический массив из указателей и признака типа данных по указателю (чтобы потом правильно обрабатывать) и при загрузке создавал динамическую переменную нужного типа, ставя на неё указатель элемента массива и выставляя в этом элементе нужный тип.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 03.10.2012, 17:12   #9
Khayzenberg
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 54
По умолчанию

договорились, буду сразу правильно писать! А можно код набросать, для меня понятней будет!
Khayzenberg вне форума Ответить с цитированием
Старый 04.10.2012, 09:42   #10
Khayzenberg
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 54
По умолчанию

я придумал вот что:

type TElement = record
Size:integer;
case Element:TElement of
elCellCell:TCell);
elFieldField:TField);
elTableTable:TTable);
end;

будут ли адекватно сохранены и загружены данные?
Khayzenberg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
График, одна общая ось х, несколько y Dobrk_k Microsoft Office Excel 6 29.04.2012 14:04
1) как перетащить несколько модулей с одной книги на другую одним скопом? 2)можно ли открыть несколько книг сразу? БАХТИ Microsoft Office Excel 17 26.09.2011 18:11
Как вводить полные инициалы в массив структур и как при выводе не отображать слово none несколько раз? -ushёl- Помощь студентам 2 02.01.2010 14:13
Беда не приходит одна! Tayfun Свободное общение 6 30.12.2007 07:58