base64 encode/decode

忘記從哪兒節錄下來的了,在這裡向作者說聲抱歉,因為那時沒有記下出處.
如果有侵犯版權的話,請來信告訴我,我會拿掉.
兩個 function 是作 base64 encode/decode 的.
不過, VFP7 以後,微軟已經擴充了 STRCONV() 的功能,讓他也能作 base64 encode/decode.
用法如下:
? STRCONV(“Hallo”,13) encodes to Base64
? STRCONV(“SGFsbG8=”,14) decodes from Base64
=====
FUNCTION Base64Encode(lcInput,loXML)
LOCAL loNode
IF VARTYPE(loXML) # “O”
loXML = CREATEOBJECT(“MSXML2.DOMDocument”)
loXML.Async = .F.
ENDIF
loXML.loadXML(“<node></node>”)
loNode = loXML.DocumentElement
loNode.dataType = “bin.base64”
loNode.nodeTypedValue = CREATEBINARY(lcInput)
RETURN loNode.Text
FUNCTION Base64Decode(lcInput,loXML)
LOCAL lcDocument
IF VARTYPE(loXML) # “O”
loXML = CREATEOBJECT(“MSXML2.DomDocument”)
loXML.Async = .F.
ENDIF
lcDocument = [<node xmlns:dt=”urn:schemas-microsoft-com:datatypes”
dt:dt=”bin.base64″>] + lcInput + [</node>]
loXML.loadXML(lcDocument)
RETURN loXML.DocumentElement.nodeTypedValue