#include 'fivewin.ch'
//------------------------------------------------//
Function Main()
Local aData1,aData2,cBinData
aData1:={"Tom","Dickenson","Harry"}
cBinData:=ASave(aData1) // Converts Array Data and to Binary and stores in cStr
? ValType( cBinData )
aData2:=ARead(cBinData) // Reads data from Binary and then converts back to Array
MsgList(aData2)
Return nil
//guardar en campo memo DESGLOSC un arreglo
aDesgC := {{"100",15},{"50",10},{"20",7},{"10",3},{"5",8},{"1",12}}
CAJA->DESGLOSC := Val2PrgExp( aDesgC )
//recuperar
aDesgC := NIL
aDesgC := &( CAJA->DESGLOSC ) //precompila el arreglo contenido en el campo memo
?valtype(aDesgC), len(aDesgC)
FUNCTION Val2PrgExp( xVal )
LOCAL cType := ValType( xVal )
LOCAL aVar, cRet
SWITCH cType
CASE 'C'
IF ! '"' IN xVal
RETURN '"' + xVal + '"'
ELSEIF ! "'" IN xVal
RETURN "'" + xVal + "'"
ELSEIF ( ! "[" IN xVal ) .AND. ( ! "]" IN xVal )
RETURN "[" + xVal + "]"
ELSE
Throw( ErrorNew( "CSTR", 0, 3102, ProcName(), "Can't stringify", { xVal } ) )
EXIT
ENDIF
CASE 'D'
RETURN "sToD( '" + dToS( xVal ) + "' )"
CASE 'L'
RETURN IIF( xVal, ".T.", ".F." )
CASE 'N'
RETURN Ltrim( Str( xVal ) )
CASE 'A'
cRet := "{ "
FOR EACH aVar IN xVal
cRet += ( Val2PrgExp( aVar ) + ", " )
NEXT
IF cRet[ -2 ] == ','
cRet[ -2 ] := ' '
ENDIF
cRet[ -1 ] := '}'
RETURN cRet
DEFAULT
IF xVal == NIL
cRet := "NIL"
ELSE
Throw( ErrorNew( "VALTOPRG", 0, 3103, ProcName(), "Tipo no soportado", { xVal } ) )
ENDIF
END
RETURN cRet
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 33 guests