Dessas funções só conseguà testar a HB_Deserialize() mas obteve retorno vazio (2 espaços). Talvez porque sejam para xHarbour.
Lamentavelmente ainda fico sem ler os codeblocks dessa matriz.

Moderador: Moderadores
Pablo César escreveu:KKK ahhh você me faz rir Leonado... você sempre apressado... nem viu que era eu quem estava perguntando. Eu só aproveitei o tópico que tratava do mesmo assunto, mas o tópico é de 2005, hihihihi
Mas obrigado Leonardo, serviu para pesquisar sobre mensagens relacionadas. Mas com o ValtoPrg não funcionou como esperado. Compilar em HMG 3.0.35 ele vai mas o retorno deu vazio lendo a matriz e em outra tentativa deu erro Warning/0 ao executar o seu exemplo:
bBloco = { || max(10,8) }
cSTRING_BLOCK:=valtoprg(bBloco)
Tem certeza que fizestes em Clipper ? Acho que não, eihn ?Sei lá o que você fez ai, mas fiz um teste rapido aqui com uma função do clipper mesmo e me mostrou um monte de CHR()
FUNCTION ValToPrg( xValue )
LOCAL cType := ValType( xValue )
DO CASE
CASE cType == "C"
xValue := StrTran( xValue, Chr(0), '"+Chr(0)+"' )
xValue := StrTran( xValue, Chr(9), '"+Chr(9)+"' )
xValue := StrTran( xValue, Chr(10), '"+Chr(10)+"' )
xValue := StrTran( xValue, Chr(13), '"+Chr(13)+"' )
xValue := StrTran( xValue, Chr(26), '"+Chr(26)+"' )
RETURN '"' + xValue + '"'
CASE cType == "N" ; RETURN LTrim( Str( xValue ) )
CASE cType == "D" ; RETURN 'HB_SToD("' + DToS( xValue ) + '")'
CASE cType == "L" ; RETURN iif( xValue, ".T.", ".F." )
CASE cType == "O" ; RETURN xValue:className() + " Object"
CASE cType == "U" ; RETURN "NIL"
CASE cType == "B" ; RETURN '{||...}'
CASE cType == "A" ; RETURN '{.[' + LTrim( Str( Len( xValue ) ) ) + '].}'
CASE cType == "M" ; RETURN 'M:"' + xValue + '"'
ENDCASE
RETURN ""
Se inserir um MsgInfo(ValType(bBloco)) depois da linha bBloco = "{ || Funcao() }" verá que na tela irá aparecer "C" que é do tipo caracter, não do tipo "B" bloco. ATé agora sem solução.Isto é possÃvel?
bBloco = "{ || Funcao() }"
MsgInfo(HB_ValToStr(bBloco))
EVAL(&bbloco)
#Translate CBNew(<b>) => { <b>, <(b)> }
#Translate CBEval(<b>) => eval( <b>\[1\] )
#Translate CBString(<b>) => <b>\[2\]
*************
function MAIN
*************
local bCod1 := CBNew( { || MINHA_FUNC("Teste") } )
local bCod2 := CBNew( { || MINHA_FUNC(12) } )
local bCod3 := CBNew( { || MINHA_FUNC("Teste") } )
local bCod4 := CBNew( { || nCtd += 1, npar2 -=1, npar3 +=10 } )
private nCtd := 0, npar2 := 0, npar3 := 0
cls
? "-CBEval-"
? CBEval( bCod1 )
? "---"
? CBEval( bCod2 )
? "---"
? CBEval( bCod3 )
? "---"
? CBEval( bCod4 )
? "---"
? "-CBString-"
? CBString( bCod1 )
? "---"
? CBString( bCod2 )
? "---"
? CBString( bCod3 )
? "---"
? CBString( bCod4 )
? "---"
return NIL
****************
function MsgInfo( cMsg )
****************
? cMsg
return NIL
*******************
function MINHA_FUNC( uDesc )
*******************
? valtype(uDesc), uDesc
return uDesc
Por falar em Rossine, você é mulher não é Rossine ? Desculpe, senão for... pois o seu nick pode ser um sobrenome... rs Você é muito inteligente e obrigado pela atenção e de muitos aqui que são verdadeiros amigos.
Caramba ! Foi mals então, ainda bem que pedi desculpas antecipadamente...rossine escreveu:Não amiguinho, joy soy macho heheheh
Usuários vendo este fórum: Google [Bot] e 9 visitantes