|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.03.2014, 22:08 | #1 |
Регистрация: 01.03.2014
Сообщений: 6
|
Универсальная обработка динамических массивов разных записей
Здравствуйте!
Ситуация такова: Есть несколько динамических массивов разных записей. С каждым массивом нужно выполнять похожие действия, типа расширения на Х элементов, или удаления конкретного. Проблема - массивов записей может быть очень много, поэтому писать для каждого свою процедуру обработки неэффективно, ибо долго. Да и код становится до безобразия громоздкий. А нужно обрабатывать каждый массив. Возможно, какой-нибудь универсальной процедураой. Вопрос - Существуют ли универсальные способы решения проблемы кроме следующих? Способ 1) Тупо написать для каждого массива свою процедуру обработки. Неэффективно, поэтому приемлемо только в крайнем случае. Пример реализации первым способом: Код:
работают чуть медленней, чем специальные. Поправьте, если неправ. Пример реализации вторым способом: Код:
Пример реализации третьим способом: Код:
|
01.03.2014, 22:22 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Исходя из представленных выше примеров могу посоветовать только два решения:
1) Матрица вариантов. Решает проблемы с разными типами. Обеспечивает универсальность кода для разных массивов. Однако далеко не всегда удобна в описании. 2) Создавать на каждый тип не массив а класс. Он будет работать со своим массивом. Если операции с массивом однотипны то можно наследовать их от базового класса 3)Работать не в массивами а с СУБД (например на основе XML). Создавать временные таблицы, куда будет помещаться разнотипная информация. В твоем случае я бы наверное выбрал первый вариант, но оформил его в класс.
I'm learning to live...
|
01.03.2014, 22:27 | #3 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 01.03.2014 в 22:29. |
01.03.2014, 22:39 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
01.03.2014, 22:45 | #5 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Цитата:
Смотря что за функционал. Если только расширение массива и удаление элементов, то не нужно писать по отдельному набору функций для каждого типа.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
01.03.2014, 22:54 | #6 | |||
Регистрация: 01.03.2014
Сообщений: 6
|
Цитата:
Цитата:
Цитата:
Не, этот вариант неприемлем, ибо скорость обработки данных очень важна. При таких условиях лишний раз ко всяким СУБД лучше не обращаться, и это даже без остальных ньюансов. Поэтому данные загружаются все сразу при старте приложения и также всей кучей сохраняются при завершении. Вобщем, хвала оперативе, и всё такое Последний раз редактировалось Stilet; 01.03.2014 в 23:28. |
|||
01.03.2014, 23:35 | #7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Вот погули почитай про нее и функции иже с ними, и поймешь о чем я. Если от себя: Создать массив (матрицу) в котором будут элементы разных типов. Это сможет заменить тип записей, если в ячейки такого массива создавать другие массивы типа variant. Можно даже получить древесное (иерархическое) представление данных. Цитата:
I'm learning to live...
|
||
02.03.2014, 00:39 | #8 | ||
Регистрация: 01.03.2014
Сообщений: 6
|
Цитата:
Цитата:
|
||
02.03.2014, 09:23 | #9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Динамический массив Variant, чем не вариант?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
02.03.2014, 13:11 | #10 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Можно предложить рассмотреть работу с Generic.Collections появившимися в Дельфи 2009 . Вводная
При этом, конечно, не лишним будет представление об ООП, и вообще опыт проектирования систем с высокоуровневой обработкой. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Инициализация динамических массивов | Алексей_2012 | Общие вопросы Delphi | 2 | 28.06.2013 16:48 |
Выполнить обработку массивов. предусмотреть описание массивов как динамических | Vika_0_0 | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 03.06.2012 10:12 |
Организация динамических массивов. | MaSTeD | C# (си шарп) | 0 | 29.02.2012 10:18 |
обработка динамических массивов | funky | Помощь студентам | 0 | 11.05.2009 17:53 |