|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.08.2011, 14:21 | #1 |
Пользователь
Регистрация: 15.07.2009
Сообщений: 52
|
Создание типа record на основе массива
Есть переменная Config:array of TConfig:
Код:
Config[0].TypeField:='String'; Config[0].SizeField:=60; Config[1].NameField:='LastName'; Config[1].TypeField:='String'; Config[1].SizeField:=60; Надо создать новый тип автоматически: Код:
|
10.08.2011, 15:05 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) есть очень сильно подозрение на ситуацию, описанную в Сага о X, Y и Z
Сага о X, Y и Z... ...или о том, как же важно правильно формулировать, чего мы хотим. 2) если Вам действительно нужно создавать типизированные файлы "на лету" (т.е. в runtime). Тогда никаких type xxxx = record, никаких file of xxxx. Любой типизированный файл - это просто напросто бинарный файл, состоящий из кусочков заданной структуры. Т.к. Вы эту структуру хотите формировать динамически, то TFileStream поможет Вам это сделать - записывайте информацию нужными порциями и всё. НО!!! (если Вам это всё реально надо), я бы рекомендовал использовать СУБД, либо формат XML, либо, на крайний случай, широко распространнёный файловый формат DBF, либо, как минимум, на самый крайнейший случай, писать структуру файла в начале самого файла. Впрочем, Вам виднее, как Вы потом собираетесь получить доступ к записанной информации... p.s. разумеется, в случае использования TFileStream все преимущества работы с типизированными файлами (например, в виде мгновенного перехода на любую запись по seek - теряются...) p.p.s. надеюсь, речь не идёт о генерации PAS исходника для работы с нужной структурой?! Так тоже можно. Только этот исходник потом компилировать прийдётся... |
10.08.2011, 15:12 | #3 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
можно написать программу, которая, на основе массива из TConfig создаст исходник на паскале, в котором будет описана требуемая запись. Далее этот исходник можно будет подключить к другой программе и скомпилить готовый проект. Так сказать, статический подход.
Динамически это сделать, естественно, не получится, но можно создать класс, типа: Код:
Код:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с динамическими массивами типа record | Олвин | Общие вопросы Delphi | 8 | 14.07.2011 01:13 |
создание OnClick для массива типа Button | VIK_aka_TOR | Помощь студентам | 13 | 19.05.2011 16:21 |
Аналог типа RECORD из Oracle в MSSQL | GenniY | SQL, базы данных | 1 | 23.12.2010 11:17 |
Создание массива объектов типа Label | levandowskiy | Общие вопросы C/C++ | 3 | 21.12.2010 15:20 |
передача данных типа Record... | Рустам | Работа с сетью в Delphi | 4 | 24.01.2010 09:51 |