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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2016, 08:59   #1
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию Нужны советы опытных программистов

Задачу пояснить трудно, но я постараюсь.
Требуется связать отдельный справочник формата XML(TfdMemtable)
c переменными внутри своего класса без явного присвоения переменной или ссылки в памяти на эту переменную.

Иными словами требуется поиск FindComponent,только искать не компоненты, а переменные внутри класса по имени и получать их значения, но в лоб это невозможно.

Проблему можно решить если использовать двумерный массив, но это неудобно при дальнейшей работе поскольку массив будет из 140 строк.

Может есть какие то извращенно-кулибинские варианты поиска переменных по имени?
Пишу много и развернуто

Последний раз редактировалось Heneken87; 22.12.2016 в 09:11.
Heneken87 вне форума Ответить с цитированием
Старый 22.12.2016, 09:10   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А в любом случае будет перебор при таком подходе. Так чем тогда массив не удобен? Или менять подход
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.12.2016, 09:12   #3
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А в любом случае будет перебор при таком подходе. Так чем тогда массив не удобен? Или менять подход
В программе более 300 разных тестов по полям, если все поля в массиве,то промазать индексом раз плюнуть.
Да и когда смотрю на проверку, по именам переменных вижу что я проверяю и что подаю, с массивом не прокатит уже видеть явно,придется тянуться к именам через индекс строки массива.

Подход менять тоже не получиться, 90% функционала уже организовано через справочники и это удобно. Код хорошо правиться.По факту программа это движок работающий от справочников. Остсались проверки, где значения 1 поля зависит от нескольких полей. Вот для этого как раз и нужен был поиск...
Можно не морочиться конечно и просто в лоб написать проверку, но хотел вынести алгоритм в справочник. Все таки памятник разработчикам PHP надо ставить за их функционал получения значений переменной по ее имени))))
Пишу много и развернуто

Последний раз редактировалось Heneken87; 22.12.2016 в 10:19.
Heneken87 вне форума Ответить с цитированием
Старый 22.12.2016, 09:26   #4
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Я даже готов пожертвовать ресурсами для перебора всех переменных, как только их перебрать, а потом еще и верно идентифицировать)))
Пишу много и развернуто
Heneken87 вне форума Ответить с цитированием
Старый 22.12.2016, 13:16   #5
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Вопрос закрыт. Прошу модераторов переименовать тему для других,чтобы понятно было.
Решение:
В uses юнита save_dann rtti;

Класс:Tsv_dann
Unit save_dann;

logins.saves:
Код:
unit login_form;
....
uses ......,save_dann;
......
public
saves:Tsv_dann;
Функция возврата-поиска значения переменной в классе.
Код:
function Tsv_dann.result_text_peremen(name_p: string): string;
 var
 cRtti : TRttiContext;
 cfield : TRttiField;
begin
result:='';
   try
   cRtti := TRttiContext.Create;
   cfield:= cRtti.GetType(TypeInfo(Tsv_dann)).GetField(name_p);
   if cfield<>nil then
   result:=cfield.GetValue(logins.saves).ToString;
   finally
     cRtti.Free ;
     cfield.Free ;
   end;
end;
Пишу много и развернуто

Последний раз редактировалось Heneken87; 22.12.2016 в 13:40.
Heneken87 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищем опытных программистов/специалистов edignes Фриланс 3 25.12.2013 08:51
Нужны советы программистов Clarus Софт 4 11.08.2012 10:45
Ищем опытных программистов KozlovAA Фриланс 1 13.09.2009 16:35
Советы опытных разработчиков студентам. Ivan_32 Свободное общение 63 28.04.2009 16:08