![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| TheCetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: 2 Всего: 2 |
Есть необходимость хранить в делфи описание нескольких таблиц, причем количество и типы полей у таблиц разные...
на данный момент использую структуру:
но получается очень неудобно когда максимальное число полей и число полей в таблице различается... приходится неиспользуемые поля забивать пустыми строками... есть ли возможность сократить описание таблицы? т.е. использовать не статическую структуру записи а переменную? |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Конечно. Просто создавай динамический массив. Для добавления/удаления новых/старых полей создай специальные процедуры.
|
|||
|
||||
| TheCetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: 2 Всего: 2 |
хм... дело в том, что структуру описываю в секции Const
а в ней не получается скомпилировать такую структуру...
|
|||
|
||||
| Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
ну дык вместо const поставь var...
-------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 7 Всего: 122 |
||||
|
||||
| TheCetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: 2 Всего: 2 |
Видимо я недостаточно четко выразился:
Храняться описания структур многих DBF файлов и структура у них не меняется. Периодически происходит выгрузка данных в DBF файл, но перед выгрузкой файл необходимо сформировать... Описание структуры лежит в отдельном модуле, единственное неудобство - большой размер записи описывающей структуру таблицы... Elfebet, замена Const на var не помогла |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
А мне всегда казалось, что для создания DBF таблицы необходимо также знать Имя поля, длину поля, тип, а для некоторых полей и другие дополнительные параметры.
Как можно создать таблицу с полями только по именам? |
|||
|
||||
| TheCetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: 2 Всего: 2 |
Snowy, если это как то поможет решить проблему
описание структуры смотри в самом первом моем посте |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Так просто от задачи не отделаться.
Нужно писать трехклассовую модель. Могу набросать модуль с реализацией модели. Добавлено @ 14:51 Нельзя такую задачу упрощать до записи. Задача полностью объектная. Такие вещи нужно делать грамотно. |
|||
|
||||
| TheCetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: 2 Всего: 2 |
Snowy, было б замечательно увидеть этот модуль
|
|||
|
||||
| Snowy |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Добавлено @ 15:56 Далее как это заполнять:
Добавлено @ 15:59 Далее. Как это использовать:
Обращаться к таблицам можно как по номеру, так и по имени. ! При добавлении новой таблицы нумерация остальных меняется, т.к. они сортированы по имени Нумерация полей никогда не меняется, т.к. структура - дело строгое. Не сделал: - Удаление таблиц из списка и полей из таблиц. По ТЗ оно тебе не особо надо. Но доработать легко. - Сохранение и чтение в/из файл. Можно сделать, если набор таблиц будет редактироваться вручную. А так - забивай программно. |
||||||
|
|||||||
| TheCetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: 2 Всего: 2 |
Интересное решение использовать для хранения полей TStringList
Это как один из вариантов решения. Но без использования TStringList в Record нельзя другим способом хранить массивы разной длинны? именно массив а не класс? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Хранить то можно, но вот инициализировать их уже таким образом не получится -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Можно. Если не использовать константу, а назначать ручками.
А отчего такая тяга к массивам? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Вот так можно организовать структуру переменной длинны:
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |