濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 用VBS讀寫二進(jìn)制文件的另一種方法分享

用VBS讀寫二進(jìn)制文件的另一種方法分享

熱門標(biāo)簽:東營快遞外呼系統(tǒng) 除了地圖標(biāo)注還有這種生意嗎 神行者美術(shù)館地圖標(biāo)注 齊齊哈爾高德地圖標(biāo)注店 如何用機(jī)器人進(jìn)行電銷 地圖標(biāo)注政府哪個(gè)部門管 佛山真人電銷機(jī)器人廠家 百度地圖標(biāo)注點(diǎn)距離代碼 哪里有便宜的地圖標(biāo)注公司
之前寫的那篇給出的方法雖然不錯(cuò),但是當(dāng)文件過大時(shí)(其實(shí)很小,也就幾M),對(duì)應(yīng)的數(shù)組也會(huì)很大,然后會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤,提示內(nèi)存耗盡,為此我郁悶了好久。

最近在博客的流量記錄中發(fā)現(xiàn)百度關(guān)鍵字“一些很惡作劇的vbs程序”(看來現(xiàn)在的年輕人很喜歡玩這口),于是打開久違的百度搜索了一下,發(fā)現(xiàn)出現(xiàn)在第三。出現(xiàn)在第二的是百度HI,上面也是一個(gè)惡作劇程序,而且還是加密的。我嘗試著解密,卻發(fā)現(xiàn)這個(gè)加密似乎比前幾天解密的那個(gè)病毒更變態(tài),未果。

雖然我沒有把那個(gè)程序解密出來(如果哪位真正的高手會(huì),麻煩指點(diǎn)一下),但是從中領(lǐng)悟出了用VBS讀寫二進(jìn)制文件的另一種方法,即Microsoft.XMLDOM+ADODB.Stream。這個(gè)方法的效率比原來那個(gè)高得多,而且似乎沒有文件大小限制。
復(fù)制代碼 代碼如下:

Function ReadBinary(FileName)
Const adTypeBinary = 1
Dim stream, xmldom, node
Set xmldom = CreateObject("Microsoft.XMLDOM")
Set node = xmldom.CreateElement("binary")
node.DataType = "bin.hex"
Set stream = CreateObject("ADODB.Stream")
stream.Type = adTypeBinary
stream.Open
stream.LoadFromFile FileName
node.NodeTypedValue = stream.Read
stream.Close
Set stream = Nothing
ReadBinary = node.Text
Set node = Nothing
Set xmldom = Nothing
End Function

函數(shù)的參數(shù)是要讀取的文件路徑,返回值是包含二進(jìn)制文件的十六進(jìn)制值的字符串。
復(fù)制代碼 代碼如下:

Sub WriteBinary(FileName, Buf)
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Dim stream, xmldom, node
Set xmldom = CreateObject("Microsoft.XMLDOM")
Set node = xmldom.CreateElement("binary")
node.DataType = "bin.hex"
node.Text = Buf
Set stream = CreateObject("ADODB.Stream")
stream.Type = adTypeBinary
stream.Open
stream.write node.NodeTypedValue
stream.saveToFile FileName, adSaveCreateOverWrite
stream.Close
Set stream = Nothing
Set node = Nothing
Set xmldom = Nothing
End Sub

第一個(gè)參數(shù)是要讀入的文件路徑,第二個(gè)參數(shù)是包含二進(jìn)制文件的十六進(jìn)制值的字符串。至于如何獲得二進(jìn)制文件的十六進(jìn)制值,那方法就很多了,最簡單的方法當(dāng)然就是用fso對(duì)象將ReadBinary函數(shù)的返回值寫到文本文件中去,然后Ctrl+C,Ctrl+V。其實(shí)用十六進(jìn)制工具也很簡單。

其他的就不多說了,看不懂的多看看MSDN參考文檔。寫了一個(gè)示例程序,里面包含了天空之城音樂的所有數(shù)據(jù),雙擊后在同一文件夾生成天空之城的MP3文件并播放。

原文:http://demon.tw/programming/vbs-binary-file-another.html

標(biāo)簽:文山 邢臺(tái) 銅川 鶴壁 湖州 四平 西安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用VBS讀寫二進(jìn)制文件的另一種方法分享》,本文關(guān)鍵詞  用,VBS,讀寫,二進(jìn)制,文件,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用VBS讀寫二進(jìn)制文件的另一種方法分享》相關(guān)的同類信息!
  • 本頁收集關(guān)于用VBS讀寫二進(jìn)制文件的另一種方法分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    安达市| 达日县| 莱芜市| 密云县| 磐安县| 盘锦市| 万载县| 印江| 永寿县| 阿瓦提县| 沽源县| 六枝特区| 华容县| 镶黄旗| 永寿县| 杭锦后旗| 寿光市| 神木县| 邓州市| 永仁县| 肥东县| 兴宁市| 江津市| 陕西省| 维西| 若羌县| 尼勒克县| 高邑县| 临洮县| 辰溪县| 远安县| 浦城县| 屏山县| 阳山县| 天台县| 石城县| 堆龙德庆县| 仁布县| 福清市| 保康县| 保山市|