自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

重點講解VB.NET二進制文件操作

開發(fā) 后端
這里介紹了VB.NET二進制文件操作方法和函數(shù)有:Open,Close,Get,Put。文章結合代碼講解VB.NET二進制文件的操作,希望可以給大家?guī)砑夹g上的提高。

VB.NET有很多值得學習的地方,這里我們主要介紹VB.NET二進制文件。大家都知道所有文件的存儲其實質(zhì)都是二進制的,VB.NET二進制文件往往由兩部分組成,一部分是文件頭另一部分存放了文件的內(nèi)容。文件頭通常存放與文件格式有關的信息,以BMP等圖象文件為例,它們的文件頭中存放了是何種圖形格式、圖象大小、調(diào)色板等信息,要顯示圖象時先讀取文件頭以獲得文件的詳細信息,然后再按其格式把圖象內(nèi)容顯示出來。用二進制方式可以操作任何的文件,當然至關重要的一點是要清楚了解所操作文件的文件頭結構。
#T#VB.NET二進制文件操作主要應用的方法和函數(shù)有:Open,Close,Get,Put等。

Open:在For后面的打開模式要用Binary。
Close:關閉文件。
Get:在指定位置取得文件的內(nèi)容,如果省略位置則從當前位置讀取。
Put:在指定位置寫入文件,如果省略位置參數(shù)就從當前位置寫。

下面結合代碼講解VB.NET二進制文件的操作

下述程序完成了將兩個文件結合成一個文件以及將這個結合后的文件再拆分成原來的兩個文件。文件頭的結構是自己定義的,非常簡單,共8個字節(jié)(也就是兩個長整型的長度),前4個字節(jié)存放***個文件的長度,后4個字節(jié)存放第二個文件的長度。為了更直觀地表達文件的結構,現(xiàn)假設有兩個文件,***個文件長度是100字節(jié),第二個文件是200字節(jié),那么合并后得到的文件應該是308字節(jié)。按順序來看,文件的結構是:

4***文件的長度
4第二文件的長度
100***文件的二進制內(nèi)容
200第二文件的二進制內(nèi)容

除了文件頭的8字節(jié)長度是固定的后面的長度都會因文件的不同而變化的。

  1. ‘實現(xiàn)文件的合并  
  2. Private Sub MergeFile()  
  3. Dim strFileName1 As String '***個文件  
  4. Dim strFileName2 As String '第二個文件  
  5. Dim strOutput As String '合并后的文件  
  6. Dim aryContent() As Byte '用來讀取文件的數(shù)組,每次讀取前要重定義  
  7. strFileName1 = "c:\a.bmp" 
  8. strFileName2 = "c:\.bmp" 
  9. strOutput = "c:\out.bmp" 
  10. '注意下面三個Open語句都是用Binary模式打開的  
  11. Open strOutput For Binary As #100  
  12. Open strFileName1 For Binary As #1  
  13. Open strFileName2 For Binary As #2  
  14. Put #100, , LOF(1) '取得***文件的長度,并把它寫入到合并文件的文件頭中  
  15. Put #100, , LOF(2) '取得第二文件的長度,并寫入到合并文件的文件頭中  
  16. ReDim aryContent(LOF(1) - 1) '重定義數(shù)組,為讀取文件做準備  
  17. Get #1, , aryContent() '取得***文件的內(nèi)容到數(shù)組  
  18. Put #100, , aryContent() '把***文件的內(nèi)容寫到合并文件中  
  19. ReDim aryContent(LOF(2) - 1)  
  20. Get #2, , aryContent()  
  21. Put #100, , aryContent()  
  22. '關閉文件  
  23. Close #1  
  24. Close #2  
  25. Close #100  
  26. End Sub  
  27. ‘實現(xiàn)文件的拆分  
  28. Private Sub SplitFile()  
  29. Dim strFileName1 As String  
  30. Dim strFileName2 As String  
  31. Dim strFileSplit As String  
  32. Dim aryContent() As Byte  
  33. Dim lngLOF(1) As Long '存放從文件頭取得的兩個文件的長度  
  34. strFileName1 = "c:\a2.bmp" 
  35. strFileName2 = "c:\2.bmp" 
  36. strFileSplit = "c:\out.bmp" 
  37. Open strFileSplit For Binary As #100  
  38. Get #100, , lngLOF(0) '取得***文件的長度  
  39. Get #100, , lngLOF(1) '第二文件的長度  
  40. Open strFileName1 For Binary As #1  
  41. Open strFileName2 For Binary As #2  
  42. ReDim aryContent(lngLOF(0)-1) '用***文件的長度重定義數(shù)組,為讀取***文件做準備  
  43. Get #100, 9, aryContent() '從第9字節(jié),即文件后面開始讀取***文件的內(nèi)容  
  44. Put #1, , aryContent() '把取得的內(nèi)容寫入到拆分文件中  
  45. ReDim aryContent(lngLOF(1)-1)  
  46. Get #100, 9 + lngLOF(0) + 1, aryContent() '從第9字節(jié)再加上***文件的長度處開始讀取第二文件的內(nèi)容,這里可以清楚地看到文件頭的作用了  
  47. Put #2, , aryContent  
  48. Close #1  
  49. Close #2  
  50. Close #100  
  51. MsgBox "拆分完成。", vbInformation 

文本文件由于沒有格式所以它的讀寫都比較簡單和直觀,而用二進制操作文件時其實質(zhì)就是對文件頭的理解,如果不知道文件頭的結構那就無法對文件進行處理了,知道了文件頭所包含的信息后,對文件的操作其實就是按規(guī)則進行Get、Put罷了。

責任編輯:田樹 來源: 博客
相關推薦

2010-01-12 13:26:21

VB.NET二進制圖像

2009-10-28 13:24:25

VB.NET文件

2009-12-16 10:49:42

Ruby操作二進制文件

2010-01-11 16:04:10

VB.NET使用wit

2009-10-20 10:16:24

VB.NET COMB

2010-01-11 17:05:32

VB.NET操作文本文

2009-10-29 15:28:38

VB.NET文件操作

2010-01-15 19:04:09

2009-10-23 13:10:14

VB.NET List

2009-10-12 13:54:22

VB.NET Data

2009-10-15 11:42:05

VB.Net賦值語句

2009-10-10 17:36:47

VB轉型到VB.NET

2009-11-02 17:24:57

VB.NET語言

2010-01-12 09:51:07

VB.NET操作dbf

2010-01-11 10:19:18

VB.NET啟動外部程

2009-10-14 17:21:47

VB.NET定制Win

2009-10-13 14:42:30

VB.NET靜態(tài)成員

2010-01-18 18:20:49

VB.NET使用API

2017-04-11 10:48:53

JS二進制

2010-01-19 14:26:45

VB.NET遞歸過程
點贊
收藏

51CTO技術棧公眾號