Форум » [x]Harbour » Запись блока кода ? » Ответить

Запись блока кода ?

Andrey: Всем привет. На хХарборе есть функции: ? "Saving Block..." SavedBlock := HB_SaveBlock( bBlock ) ? "Restoring Block..." bBlock := HB_RestoreBlock( SavedBlock ) А на Харборе есть такие ? Чем можно заменить или превратить блок кода в строку ?

Ответов - 7

Andrey: В харборе нашел \HB32\contrib\xhb\tests\decode.prg, там тоже нет преобразования... Наверно жесть задача, записать блок кода в строку....

santy: Посмотри на функции: HB_SERIALIZE HB_DESERIALIZE

Andrey: santy пишет: HB_SERIALIZE HB_DESERIALIZE Посмотрел, ни фига не понял... @ 1, 10 SAY "X H A R B O U R - Serialization and deserialization tests" cTmp := HB_Serialize( "A string" ) cTmp += HB_Serialize( 12.4 ) cTmp += HB_Serialize( Directory( "serialize.prg") ) cTmp += HB_Serialize( CtoD( "2/2/2001" ) ) cTmp += HB_Serialize( { 1, 2, { "a", "b" }, 3 } ) cTmp += HB_Serialize( 2100010101 ) cTmp += HB_Serialize( {'a'=>'1', 'b'=> 2, 10 =>{1,2}, 'z' =>{1=>2, 0=>3} } ) cTmp += HB_Serialize( SomeClass():New("A parameter") ) cTmp += HB_Serialize( "Last String, closing test" ) /* now we deserialize */ cSerial := HB_DeserialBegin( cTmp ) Блок кода не наблюдается....


Haz: Andrey пишет: Посмотрел, ни фига не понял.. http://www.creasolgroup.com/xOraclipLanguageReferenceGuide/xOraClip%20Language%20Reference/Functions/Hb_serialize_f.en.html PS это просто пример для понимания

Andrey: Есть еще CStr( bBlock ) // result: {|| Block } (в Харборе HB_CStr( bBlock ) ) Но возврашает {||...} Делаю так: bBlock := {|x| MsgDebug(x) } xResult := HB_CStr( bBlock ) MsgDebug( xResult, VALTYPE(xResult) ) Результат: Если так: bVal := {|x| x -= 30 } xVal := HB_SERIALIZE( bVal ) MsgDebug( xVal , VALTYPE(xVal) ) Результат:

SergKis: Andrey HB_Serialize( <xValue> ) --> cBinary - блок кода в строку, но не исходную, для передачи между модулями через mem файл в hb нет (пока, а может навсегда) функций, как в xhb

Andrey: SergKis пишет: в hb нет (пока, а может навсегда) функций, как в xhb Во, понял теперь ! Спасибо ! А когда появятся ? Там разработчиков можно потрясти ?



полная версия страницы