January 19,2004

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


Posted by elleryq at 樂多Roodo! │21:25 │Visual FoxPro
工具:編輯本文
Ads by Roodo!