Автор | Сообщение |
|
| Администратор
|
Пост N: 2139
Зарегистрирован: 23.05.05
|
|
Отправлено: 19.10.11 13:50. Заголовок: Вопрос знатокам препроцессора
Мне надо транслировать выражение _GetIni(aDB, 'Database') в конструкцию aDB['Database'] Пытаюсь сделать это командой: #xtranslate _GetIni(<hHash>, <cName>) =><hHash>[<cName>] Получаю ошибку компиляции. Я так понимаю, что это из-за использования квадратных скобок. Можно ли сделать подобную трансляцию средствами препроцессора ?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Пост N: 299
Зарегистрирован: 11.06.10
|
|
Отправлено: 19.10.11 17:05. Заголовок: Если так как в доке ..
Если так как в доке сделать #define O1 [ #define O2 ] #xtranslate _GetIni(<hHash>, <cName>) => <hHash> O1 <cName> O2 то на выходе получим aDB [ "Database" ] надо как-то пробел убрать А лучше у Przemeka спросить.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 19.10.11 18:50. Заголовок: Пробелы
а в оригинале пробелы - есть? #xtranslate _GetIni(<hHash>, <cName>) => <hHash> O1 <cName> O2 а если попробовать #xtranslate _GetIni(<hHash>, <cName>) => <hHash>O1<cName>O2
|
|
|
|
| Администратор
|
Пост N: 2142
Зарегистрирован: 23.05.05
|
|
Отправлено: 19.10.11 19:20. Заголовок: Да черт с ними, с эт..
Да черт с ними, с этими пробелами. Лишь бы правильно транслировалось, и компилятор понимал код. Спасибо.
|
|
|
|
| |
Пост N: 300
Зарегистрирован: 11.06.10
|
|
Отправлено: 19.10.11 20:53. Заголовок: petr707 пишет: а ес..
petr707 пишет: цитата: | а если попробовать #xtranslate _GetIni(<hHash>, <cName>) => <hHash>O1<cName>O2 |
| пробовал, получаем такое aDbO1"DataBase"] Pasha пишет: цитата: | Да черт с ними, с этими пробелами. |
| да в том и дело что пробел между aDb и ["DataBase"], компилятор ругается.
|
|
|
|
| Администратор
|
Пост N: 2143
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.10.11 08:06. Заголовок: AlexMyr пишет: да в..
AlexMyr пишет: цитата: | да в том и дело что пробел между aDb и ["DataBase"], компилятор ругается. |
| Да нет же, компилирует, причем и xHarbour, и Harbour: #define o1 [ #define o2 ] #xtranslate _GetIni(<hHash>, <cName>) => <hHash> o1 <cName> o2 func main Local aIni := hb_Hash() aIni[ "Path" ] := hb_Hash() ? ValType(_GetIni(aIni, 'Path')) retu nil фрагмент из ppo: QOut( ValType(aIni [ "Path" ]) ) и этот код работает.
|
|
|
|
| |
Пост N: 301
Зарегистрирован: 11.06.10
|
|
Отправлено: 20.10.11 08:56. Заголовок: Но в рантайме выдает..
Но в рантайме выдает ошибку Error BASE/1003 Variable does not exist: ADB
|
|
|
|
| Администратор
|
Пост N: 2144
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.10.11 09:30. Заголовок: AlexMyr пишет: Но в..
AlexMyr пишет: цитата: | Но в рантайме выдает ошибку Error BASE/1003 Variable does not exist: ADB |
| Так это же другая ошибка. Наверное, переменная действительно не существует. Ее надо обьявить: local или private
|
|
|
|