Есть ли такой способ обращения к переменной?

Титов Артем
Дата: 06.06.2009 12:17:24
Есть объявленная переменная Test типа String. Её имя занесено в другую переменную A:='Test'. Можно ли как-нить присвоить значение переменной Test, не осуществляя прямого присвоения Test:='...'?
Dimitry Sibiryakov
Дата: 06.06.2009 12:23:21

Нет. Имена переменных исчезают при компиляции.

Posted via ActualForum NNTP Server 1.4

Титов Артем
Дата: 06.06.2009 12:28:38
Dimitry Sibiryakov,

а через указатели может быть можно-как нить?
Anatoly Podgoretsky
Дата: 06.06.2009 12:47:47
Можно

--
http://www.podgoretsky.com
Anatoly Podgoretsky
Дата: 06.06.2009 12:49:05
А чего прямое присванивание не устраивает, рылом не вышло?

--
http://www.podgoretsky.com
Титов Артем
Дата: 06.06.2009 13:09:47
Anatoly Podgoretsky
А чего прямое присванивание не устраивает, рылом не вышло?

--
http://www.podgoretsky.com


Прога получает на вход документ Word'a (анкету с данными о физ.лицах).
Она знает что и откуда из этого документа брать. Но она не знает куда это записать (напрямую в базу нельзя). Вот я хочу заранее определить в проге структуру строковых данных (или еще что-нить, пока не определился, т.к. ищу оптимальной/наиболее универсальный алгоритм), указать в определенной талице БД имена полей этой структуры (в этой таблице также хранятся записи с координатами ячеек таблицы документа Word'a).

После заполнения структуры я проверяю корректность заполнения анкеты. Если все правильно, я сброшу данные в соответствующий справочник БД.
matalata
Дата: 06.06.2009 16:09:22
Dimitry Sibiryakov

Нет. Имена переменных исчезают при компиляции.

Можно подключить какой-нибудь паскалевский скрипт - интерпретатор, возможно, в каком-нибудь допускается обращение к переменной по имени.
q
Дата: 06.06.2009 17:26:57
Титов Артем,

в xml
AWSVladimir
Дата: 07.06.2009 11:58:02
А чем Published Property не устраивает?
После компиляции можно по имени присваивать. Да и методы свои имена сохраняют в классе, если их записывать до Privat (например OnCreate и OnShow сохраняется вполне).
---
А вообще то непонятно что хочется, ибо доступ в рантайме к любому методу и проперти по имени не для начальной школы.

А в твоем примере, на скольо я понял, заведи TStringList, заполни нужными именами, в объект запихай хоть метод, хоть рекорд с методами и дополнительными данными и работай.
Хотя можно проще:

Функция ЗаписатьКудатоЧтото(КудыПисать,Значение:string);
{
  if (КудыПисать='БазаInterbase') then
  { SQL.text:='insert into MyTable (MyField) values ('''+Значение+''');
    SQL.Execute;
  } else if (КудыПисать='ВЛогФайл') then
  { WriteFileStream.ReadBuff(Значение)
  }
}
FlyD
Дата: 07.06.2009 12:45:14
Титов Артем
Прога получает на вход документ Word'a (анкету с данными о физ.лицах).
Она знает что и откуда из этого документа брать. Но она не знает куда это записать (напрямую в базу нельзя). Вот я хочу заранее определить в проге структуру строковых данных (или еще что-нить, пока не определился, т.к. ищу оптимальной/наиболее универсальный алгоритм), указать в определенной талице БД имена полей этой структуры (в этой таблице также хранятся записи с координатами ячеек таблицы документа Word'a).

После заполнения структуры я проверяю корректность заполнения анкеты. Если все правильно, я сброшу данные в соответствующий справочник БД.
А что в данном случае дает знание/список имен этой структуры? Разве состав и имена
полей данных о физ.лицах могут меняться от одного заполнения анкеты к другому?
Состав и имена полей регламентируются (я не беру случай изменений, при которых,
например, состав дополняется дополнительным адресом физ.лица в рамках требований
к приложению). Здесь схема простая: чтение из анкеты -> запись в record -> валидация ->
запись в базу данных. И хранение имен полей этой структуры ничего не даст.
Если допустить алгоритм, при котором исходники не требуют изменений и перекомпиляции
в случае модификации анкеты, что влечет механизм "что и откуда из этого документа брать",
то тогда отказывайтесь от струтктуры и смотрите в сторону реализации по принципу TFields.