Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.26;
Скачать: CL | DM;

Вниз

Аналог опертора макроподстановки Foxpro (&) в Delphi   Найти похожие ветки 

 
sad ©   (2003-12-15 11:06) [0]

как реализовать следующее

dbas = "Some_Base";
&dbas.Open;

или

dbas = "mkind"
&dbas=4

? mkind
4


 
PVOzerski ©   (2003-12-15 11:10) [1]

По-хорошему - никак. По-плохому (с потерей скорости, с нарушением логики языка Pascal, но это всё IMHO, а, скажем, в OLE/ActiveX все равно приходится так делать) - через тип Variant.


 
Romkin ©   (2003-12-15 11:11) [2]

Нету такого :) Delphi - компилятор, а не интерпретатор. Можно, правда, использовать сторонние компоненты, парсеры на Торри есть. Или у MS взять scripting, но там уже с интерфейсами работа.


 
PVOzerski ©   (2003-12-15 11:16) [3]

2Romkin:
Если Some_Base - интерфейс, а dbas - вариант, то всё получится. С учетом сказанного в [1].


 
sad ©   (2003-12-15 11:18) [4]

Тогда, ка можно реализовать такое:
в файл надо записать значения переменных,
в порядке указанном в некой таблице: позиция, имя_переменной ?


 
REA ©   (2003-12-15 11:19) [5]

Не, ну с некоторым допущением DataBaseName, FieldByName. Но совсем то такого нету. И это правильно.


 
Erik ©   (2003-12-15 11:27) [6]

Преведи полностью задачу, возможно, что все намного проще.


 
KSergey ©   (2003-12-15 11:31) [7]

А если переменные сделать полями нек. класса (да хоть и формы), поместить эти поля класса в Published секцию (или придется их сделать property"ями?) и привлечь в помощь RTTI?

А вообще-то - распишите задачу шире
Наверняка нет необходимости точно копировать логику FoxPro"шной программы (привычек?)


 
sad ©   (2003-12-15 12:08) [8]

Задача.
Дана таблица:
номер_строки_в_файле, имя_переменной
Нужно
Записать в номер_строки_в_файле значение переменной


 
Romkin ©   (2003-12-15 12:47) [9]

НУ что же, делай через if, организуй массивчик с именами переменных, и по нему получай, какую переменную писать. И какой идиот такие задания дает?


 
REA ©   (2003-12-15 12:52) [10]

А что есть переменная, которая задана именем? На момент, когда программа скомпилирована такого понятия уже нет.


 
sad ©   (2003-12-15 13:04) [11]

>>REA ©
можешь предложить вариант на asm с косвенной адресацией?


 
KSergey ©   (2003-12-15 15:23) [12]

> [8] sad © (15.12.03 12:08)

Это шире?? ;)
Это повторение.
А вот зачем это надо?


 
sad ©   (2003-12-15 15:30) [13]

>>KSergey © (15.12.03 15:23) [12]
для того, чтобы сформировать файл со строками в указанной в таблице последовательностью

да, ладно, 52 if"а -это не конец света.


 
sad ©   (2003-12-15 15:28) [14]

>>KSergey © (15.12.03 15:23) [12]
для того, чтобы сформировать файл со строками в указанной в таблице последовательностью

да, ладно, 52 if"а -это не конец света.


 
Romkin ©   (2003-12-15 15:35) [15]

Подозреваю, что тебе подойдет TStringList, там есть возможность сделать, забиваешь строками вида param=value, и используешь


 
REA ©   (2003-12-15 15:43) [16]


> можешь предложить вариант на asm с косвенной адресацией?

Нет. Я не понимаю терминологию. Ты отладчик что ли делаешь? Тогда нужно почитать про отладочные таблицы, размещение переменных в памяти и т.п. Достаточно сложно. Если отладочных таблиц нет, то и переменных тоже нет (по крайней мере их имен). Есть память и регистры.


 
KSergey ©   (2003-12-15 15:47) [17]

А что, строки обязательно хранить в переменных? А в массиве, к которому уже можно обращаться по индексу, т.е. возникает все же регулятность - нельзя?
И все же я никак не пойму, почему не хочешь нормально, подробно все описать.
Рискну предположить, что есть несколько переменных, имена которых совпадают со значением строк в таблице, а рядом в таблице есть число, описывающее порядок выдачи в файл. (вот только почему это я пишу? А сам - лень?)

Тогда я вижу 2 пути выхода их этого кризиза:
1.В таблице хранить не имена (переменных), а соотв. индекс в массиве.
2.Хранить массив структур

имя_параметра (оно же имя, забитое сейчас в таблице)
связанное_значение (его и сохряняем в файл)

Тогда можно сосряпять цикл, который пробегая по этому массиву будет выискивать соотв. его элемент и сохранять значение.

PS

Хотя лучше бы услышать задачу в твоем исполнении
А то я тут много чего нафантазировать могу ;)


 
cpp   (2003-12-15 16:17) [18]

Ребята когда вы переходите на другой язык программирования - используйте только его принципы программирования. Если нет возможности макроподстановки ну и не надо. Без этого всё и так превосходно работает.
Я программировал и на FoxPro и Delphi и Java и С++. И когда пытался применить тот или иной принцип программирования, взятый из другого языка - то у меня уходило на это масса времеени. Всё это можно было сделать проще и элегантнее, но другим способом


 
sad ©   (2003-12-15 16:17) [19]

>>REA © (15.12.03 15:43) [16]
>>Ты отладчик что ли делаешь?
нет. все намного проще.

>>
KSergey © (15.12.03 15:47) [17]
>>Рискну предположить...
да именно так.

Организация предоставила структуру файла, который должна формировать программа в виде таблицы

00 ФИО клиента
01 Номер счета
.....
52 E-mail

порядок полей может меняться.

В конце дня из основной базы происходит выгрузка в файл согласно структуре, приведенной в таблице.

Можно использовать массив, скорей всего так и сделаю. Отпугивает, только то, что надо помнить какой индекс за что отвечает.

Спасибо за ответы.
С уважением,
sad


 
Romkin ©   (2003-12-15 16:18) [20]

А просто по полям таблицы пробежаться сложно?


 
Anatoly Podgoretsky ©   (2003-12-15 16:20) [21]

Так этоже не переменные, а имена полей в таблице, в общем элементарный экспорт.



Страницы: 1 вся ветка

Текущий архив: 2003.12.26;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.019 c
14-86499
barbi
2003-12-03 13:49
2003.12.26
Что вы думаете о Windows Longhorn?


3-86276
Andrey V.
2003-12-04 08:58
2003.12.26
Параметры ibDatabase.


1-86370
OlegM
2003-12-16 07:30
2003.12.26
Отчистить компонент Image от изображения как


14-86540
Jack
2003-11-30 14:09
2003.12.26
ЧЕ2004


14-86523
Нурик
2003-12-04 01:36
2003.12.26
Где можно скачтать Install Shield?