PROC MAIN() nResult := NIL nDivident := 1 nDivisor := 0 cMacro := " nResult := nDivident / nDivisor " QOutResult( nDivident, nDivisor, cMacro ) // 1 0 UE macro is inValid nDivisor := 2 QOutResult( nDivident, nDivisor, cMacro ) // 1 2 N Result is : 0.50 cMacro := "AT( 'OK', MyUDF() ) > 0" QOutResult( 'AT( OK', 'MyUDF()', cMacro ) // AT( OK ... U macro is inValid cMacro := "{ 1, 2 }[ 2 ]" QOutResult( '{ 1, 2 }', '[2]', cMacro ) // { 1, 2 } [2] N Result is : 2 cMacro := "{ 1, 2 }[ 5 ]" QOutResult( '{ 1, 2 }', '[5]', cMacro ) // { 1, 2 } [5] UE macro is inValid lCond := 0 cMacro := "if( lCond, 'true', MyUDF() )" QOutResult( lCond, '', cMacro ) // 0 U macro is inValid ? WAIT RETU // Main() *-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._. PROC QOutResult( xVal1, xVal2, cMacro ) LOCAL cType := TYPE( cMacro ) ? PAD( xVal1, 10 ), PAD( xVal2, 10 ), PAD( cType, 3 ) IF ( cType # "U") ?? "Result is :", &cMacro ELSE ?? "macro is inValid" ENDIF RETU // QOutResult() *-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._
Pingback: How I Can Do … | Viva Clipper !