用VB將WORD文件(或其他的二進位制資料)生成xml檔案並互相轉換 (轉)
用vb將文件(或其他的二進位制資料)生成並互相轉換microsoft-com::office" />
1. 建立一個新的vb工程
2. 引用 Microsoft XML,版本 2.0 或以上
3. 在窗體form1上建立按鈕 cmdCreateXML 和 cmdGetBinary
程式碼:
Option Explicit
Dim oDoc As Document
Dim DOCINPATH As String
Dim XMLOUTPATH As String
Dim DOCOUTPATH As String
Private Sub cmdCreateXML_Click()
Dim oEle As IXMLDOMElement
Dim o As IXMLDOMElement
Dim oNode As IXMLDOMNode
DOCINPATH = App.Path & "DocInput.doc"
XMLOUTPATH = App.Path & "XmlOuput.xml"
Call Releases
Set oDoc = New DOMDocument
oDoc.resolveExternals = True
' Create processing instruction and document root
Set oNode = oDoc.createProcessingInstruction("xml", "version='1.0'")
Set oNode = oDoc.insertBefore(oNode, oDoc.childNodes.Item(0))
' Create document root
Set oRoot = oDoc.createElement("Root")
Set oDoc.documentElement = oRoot
oRoot.setAttribute "xmlns:dt", "urn:schemas-microsoft-com:datatypes"
' Add a few simple nodes with different datatypes
Set oNode = oDoc.createElement("Document")
oNode.Text = "Demo"
oRoot.appendChild oNode
Set oNode = oDoc.createElement("CreateDate")
oRoot.appendChild oNode
Set oEle = oNode
' Use DataType so MSXML will validate the data type
oEle.dataType = "date"
oEle.nodeTypedValue = Now
Set oNode = oDoc.createElement("bgColor")
oRoot.appendChild oNode
Set oEle = oNode
' Use DataType so MSXML will validate the data type
oEle.dataType = "bin.hex"
oEle.Text = &HFFCCCC
Set oNode = oDoc.createElement("Data")
oRoot.appendChild oNode
Set oEle = oNode
' Use DataType so MSXML will validate the data type
oEle.dataType = "bin.base64"
' Read in the data
oEle.nodeTypedValue = ReainData(DOCINPATH)
' Save xml file
oDoc.save XMLOUTPATH
MsgBox XMLOUTPATH & " is created for you."
End Sub
Function ReadBinData(ByVal strFileName As String) As Variant
Dim lLen As Long
Dim iFile As Integer
Dim arrBytes() As Byte
Dim lCount As Long
Dim strOut As String
'Read from disk
iFile = FreeFile()
Open strFileName For Binary Access Read As iFile
lLen = FileLen(strFileName)
ReDim arrBytes(lLen - 1)
Get iFile, , arrBytes
Close iFile
ReadBinData = arrBytes
End Function
Private Sub WriteBinData(ByVal strFileName As String)
Dim iFile As Integer
Dim arrBuffer() As Byte
Dim oNode As IXMLDOMNode
If Not (oDoc Is Nothing) Then
' Get the data
Set oNode = oDoc.documentElement.SingleNode("/Root/Data")
' Make sure you use a byte array instead of variant
arrBuffer = oNode.nodeTypedValue
' Write to disk
iFile = FreeFile()
Open strFileName For Binary Access Write As iFile
Put iFile, , arrBuffer
Close iFile
End If
End Sub
Private Sub cmdGetBinary_Click()
DOCOUTPATH = App.Path & "DocOutput.doc"
Set oDoc = New DOMDocument
If oDoc.Load(XMLOUTPATH) = True Then
' Save the Doc as another file
WriteBinData DOCOUTPATH
MsgBox DOCOUTPATH & " is created for you."
Else
MsgBox oDoc.parseError.reason
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
ReleaseObjects
End Sub
Private Sub ReleaseObjects()
Set oDoc = Nothing
End Sub
4. 建立word文件DocInput.doc.
5. 儲存文件在工程目錄下
6. 執行點選cmdCreateXML 按鈕.一個 XML 檔案XmlOuput.xml 就建立了.
點選 cmdGetBinary 按鈕就可以生成word文件 DocOutput.doc.
按照上面的方法,同樣可以將任意的二進位制資料存為xml,然後再重新生成二進位制資料
可以用於傳輸等等可以使用的地方
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990569/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 十進位制與二進位制互相轉換指南
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 用C#程式碼實現二進位制與十進位制的互相轉換C#
- 用Aspose-Java免費實現 PDF、Word、Excel、Word互相轉換並將轉換過得檔案上傳OSS,返回轉換後的檔案路徑JavaExcel
- ORACLE使用函式對二進位制、十進位制、十六進位制數互相轉換Oracle函式
- 其他進位制的數字 轉換
- WebSocket系列之JavaScript字串如何與二進位制資料間進行互相轉換WebJavaScript字串
- 用shell處理二進位制檔案(轉)
- 二進位制轉十進位制快速轉換方法
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- Java 將Markdown檔案轉換為Word和PDF文件Java
- JavaScript十進位制轉換為二進位制JavaScript
- Oracle二進位制與十進位制轉換Oracle
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 什麼是二進位制?二進位制如何轉換?
- 將PPT文件轉換為Word文件
- (轉)【iOS 開發】二進位制、十進位制、十六進位制相互轉換的方法iOS
- 蘋果手機如何將PDF檔案轉換為Word文件蘋果
- 二進位制補碼及與原碼的互相轉換方法詳解
- 資料轉換-16進位制字元字元
- 字串與二進位制互相轉化(不包含漢字) (轉)字串
- 用Python將word檔案轉換成htmlPythonHTML
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 進位制與二進位制及相關轉換
- 【轉帖】Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- Qt進位制轉換(十進位制轉十六進位制)QT
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- JavaScript 進位制轉換(2進位制、8進位制、10進位制、16進位制之間的轉換)JavaScript
- Oracle建立二進位制檔案索引的方法(轉)Oracle索引
- 進位制的轉換
- 在客戶端用JAVASCRIPT或VBSCRIPT生成WORD文件 (轉)客戶端JavaScript
- 輕鬆將Word文件快速轉成Flash檔案(轉)
- js將數字轉換成二進位制形勢JS
- JavaScript 二進位制數字轉換為十進位制JavaScript
- js二進位制和十進位制轉換程式碼JS
- caj檔案怎麼轉換成word文件,簡單的檔案格式轉換教程
- 進位制轉換