On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Пост N: 158
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 07.08.16 12:12. Заголовок: блок кода


Можно ли транслировать и сохранять в символьном виде блок кода ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]


Администратор




Пост N: 3480
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.08.16 14:16. Заголовок: Верно наоборот: стро..


Верно наоборот: строковый макрос можно транслировать в блок кода

Function GetBlock(cMacro, cPar)
Return &('{|' + if(cPar#nil,cPar,'') + '|' + AllTrim(cMacro) + '}')

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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1144
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.08.16 14:21. Заголовок: Еще http://clipper.b..

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1145
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.08.16 14:27. Заголовок: Может такой путь ? (..


Может такой путь ? ( http://www.kresin.ru/hrbfaq_3.html#Doc12 )
 
Три функции, использующие встроенный компилятор (hbcplr.lib), основанный на том же коде, что и сам harbour.exe.

nRetCode := hb_compile( "harbour", cFileName, [...] ) Компилирует файл cFileName с переданными ей параметрами компиляции. Результатом ее работы является .c файл.
cHrb := hb_compileBuf( "harbour", cFileName, [...] ) В отличие от hb_compile(), не создает .c файл, а возвращает созданный в результате компиляции p-code в виде текстовой строки, который можно сохранить как hrb файл или исполнить с помощью hb_hrbRun()
cHrb := hb_compileFromBuf( cPrg, "harbour", [...] ) Компилирует код из буфера cPrg, возвращает p-code, как и hb_compileBuf()
Ниже приведен пример использования run-time компиляции:
FUNCTION Main( cFileName )
Local handle, buf, cBuf := "", i

buf := hb_compilebuf( "harbour", cFileName, "/n","/w" ) // Компилируем
hb_hrbRun( buf ) // исполняем

handle := FCreate( Iif((i:=Rat('.',cFileName))=0,cFileName,Substr(cFileName,1,i-1)) + ".hrb" )
FWrite( handle, buf )
FClose( handle )

Return Nil


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 28
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет