Форум: "Основная";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];
ВнизАналог опертора макроподстановки 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.008 c