您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)VB.NET中怎么對二進制文件進行操作,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
VB.NET二進制文件操作主要應(yīng)用的方法和函數(shù)有:Open,Close,Get,Put等。
Open:在For后面的打開模式要用Binary。
Close:關(guān)閉文件。
Get:在指定位置取得文件的內(nèi)容,如果省略位置則從當(dāng)前位置讀取。
Put:在指定位置寫入文件,如果省略位置參數(shù)就從當(dāng)前位置寫。
下面結(jié)合代碼講解VB.NET二進制文件的操作
下述程序完成了將兩個文件結(jié)合成一個文件以及將這個結(jié)合后的文件再拆分成原來的兩個文件。文件頭的結(jié)構(gòu)是自己定義的,非常簡單,共8個字節(jié)(也就是兩個長整型的長度),前4個字節(jié)存放***個文件的長度,后4個字節(jié)存放第二個文件的長度。為了更直觀地表達文件的結(jié)構(gòu),現(xiàn)假設(shè)有兩個文件,***個文件長度是100字節(jié),第二個文件是200字節(jié),那么合并后得到的文件應(yīng)該是308字節(jié)。按順序來看,文件的結(jié)構(gòu)是:
4***文件的長度
4第二文件的長度
100***文件的二進制內(nèi)容
200第二文件的二進制內(nèi)容
除了文件頭的8字節(jié)長度是固定的后面的長度都會因文件的不同而變化的。
‘實現(xiàn)文件的合并 Private Sub MergeFile() Dim strFileName1 As String '***個文件 Dim strFileName2 As String '第二個文件 Dim strOutput As String '合并后的文件 Dim aryContent() As Byte '用來讀取文件的數(shù)組,每次讀取前要重定義 strFileName1 = "c:\a.bmp" strFileName2 = "c:\.bmp" strOutput = "c:\out.bmp" '注意下面三個Open語句都是用Binary模式打開的 Open strOutput For Binary As #100 Open strFileName1 For Binary As #1 Open strFileName2 For Binary As #2 Put #100, , LOF(1) '取得***文件的長度,并把它寫入到合并文件的文件頭中 Put #100, , LOF(2) '取得第二文件的長度,并寫入到合并文件的文件頭中 ReDim aryContent(LOF(1) - 1) '重定義數(shù)組,為讀取文件做準(zhǔn)備 Get #1, , aryContent() '取得***文件的內(nèi)容到數(shù)組 Put #100, , aryContent() '把***文件的內(nèi)容寫到合并文件中 ReDim aryContent(LOF(2) - 1) Get #2, , aryContent() Put #100, , aryContent() '關(guān)閉文件 Close #1 Close #2 Close #100 End Sub ‘實現(xiàn)文件的拆分 Private Sub SplitFile() Dim strFileName1 As String Dim strFileName2 As String Dim strFileSplit As String Dim aryContent() As Byte Dim lngLOF(1) As Long '存放從文件頭取得的兩個文件的長度 strFileName1 = "c:\a2.bmp" strFileName2 = "c:\2.bmp" strFileSplit = "c:\out.bmp" Open strFileSplit For Binary As #100 Get #100, , lngLOF(0) '取得***文件的長度 Get #100, , lngLOF(1) '第二文件的長度 Open strFileName1 For Binary As #1 Open strFileName2 For Binary As #2 ReDim aryContent(lngLOF(0)-1) '用***文件的長度重定義數(shù)組,為讀取***文件做準(zhǔn)備 Get #100, 9, aryContent() '從第9字節(jié),即文件后面開始讀取***文件的內(nèi)容 Put #1, , aryContent() '把取得的內(nèi)容寫入到拆分文件中 ReDim aryContent(lngLOF(1)-1) Get #100, 9 + lngLOF(0) + 1, aryContent() '從第9字節(jié)再加上***文件的長度處開始讀取第二文件的內(nèi)容,這里可以清楚地看到文件頭的作用了 Put #2, , aryContent Close #1 Close #2 Close #100 MsgBox "拆分完成。", vbInformation
看完上述內(nèi)容,你們對VB.NET中怎么對二進制文件進行操作有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。