偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

重點(diǎn)講解VB.NET二進(jìn)制文件操作

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

VB.NET有很多值得學(xué)習(xí)的地方,這里我們主要介紹VB.NET二進(jìn)制文件。大家都知道所有文件的存儲(chǔ)其實(shí)質(zhì)都是二進(jìn)制的,VB.NET二進(jìn)制文件往往由兩部分組成,一部分是文件頭另一部分存放了文件的內(nèi)容。文件頭通常存放與文件格式有關(guān)的信息,以BMP等圖象文件為例,它們的文件頭中存放了是何種圖形格式、圖象大小、調(diào)色板等信息,要顯示圖象時(shí)先讀取文件頭以獲得文件的詳細(xì)信息,然后再按其格式把圖象內(nèi)容顯示出來。用二進(jìn)制方式可以操作任何的文件,當(dāng)然至關(guān)重要的一點(diǎn)是要清楚了解所操作文件的文件頭結(jié)構(gòu)。
#T#VB.NET二進(jìn)制文件操作主要應(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二進(jìn)制文件的操作

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

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

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

  1. ‘實(shí)現(xiàn)文件的合并  
  2. Private Sub MergeFile()  
  3. Dim strFileName1 As String '***個(gè)文件  
  4. Dim strFileName2 As String '第二個(gè)文件  
  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. '注意下面三個(gè)Open語(yǔ)句都是用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) '取得***文件的長(zhǎng)度,并把它寫入到合并文件的文件頭中  
  15. Put #100, , LOF(2) '取得第二文件的長(zhǎng)度,并寫入到合并文件的文件頭中  
  16. ReDim aryContent(LOF(1) - 1) '重定義數(shù)組,為讀取文件做準(zhǔn)備  
  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. '關(guān)閉文件  
  23. Close #1  
  24. Close #2  
  25. Close #100  
  26. End Sub  
  27. ‘實(shí)現(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 '存放從文件頭取得的兩個(gè)文件的長(zhǎng)度  
  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) '取得***文件的長(zhǎng)度  
  39. Get #100, , lngLOF(1) '第二文件的長(zhǎng)度  
  40. Open strFileName1 For Binary As #1  
  41. Open strFileName2 For Binary As #2  
  42. ReDim aryContent(lngLOF(0)-1) '用***文件的長(zhǎng)度重定義數(shù)組,為讀取***文件做準(zhǔn)備  
  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é)再加上***文件的長(zhǎng)度處開始讀取第二文件的內(nèi)容,這里可以清楚地看到文件頭的作用了  
  47. Put #2, , aryContent  
  48. Close #1  
  49. Close #2  
  50. Close #100  
  51. MsgBox "拆分完成。", vbInformation 

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

責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2010-01-12 13:26:21

VB.NET二進(jìn)制圖像

2009-10-28 13:24:25

VB.NET文件

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-12-16 10:49:42

Ruby操作二進(jìn)制文件

2009-10-13 14:42:30

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

2009-10-14 17:21:47

VB.NET定制Win

2010-01-18 18:20:49

VB.NET使用API

2010-01-12 09:51:07

VB.NET操作dbf

2009-11-02 17:24:57

VB.NET語(yǔ)言

2009-10-10 17:36:47

VB轉(zhuǎn)型到VB.NET

2009-10-12 13:54:22

VB.NET Data

2009-10-23 13:10:14

VB.NET List

2009-10-15 11:42:05

VB.Net賦值語(yǔ)句

2009-10-29 15:28:38

VB.NET文件操作

2010-01-15 19:04:09

2009-10-10 17:06:09

VB和VB.NET

2009-10-12 16:56:36

VB.NET常量VB.NET枚舉

2009-10-29 13:24:09

VB.NET Cons
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)