簡體   English   中英

Excel VBA位控制

[英]Excel VBA Bit Control

在Excel VBA中,我在搞亂讀寫二進制文件。

我想知道是否有可能而不是僅更改字節以實際使用這些位。 我並不是說要獲取每個字節並將其轉換為8位,而是如果可以使用位控制來創建/修改/讀取文件,例如,可能只有4位或10位的文件總是8的倍數

這是我正在使用的一些代碼:

Private Sub WriteFile()
  Dim path As String, num As Byte, arr(2) As Byte
  path = "test.bin"
  arr(0) = CByte(&HA1)
  arr(1) = CByte(&HC4)
  arr(2) = CByte(&HA1)
  num = FreeFile
  If Dir(path) <> "" Then Kill path
  Open path For Binary Access Write As num
  Put num, , arr
  Close num
End Sub

好吧,問題是你為什么要這么做? 我認為,由於文件的最小I / O單位是1字節(8位),因此您將始終需要寫入1個完整字節。

該方法將是生成位流並將其轉換為字節(就在寫入文件之前)。

因此,更改一位的方法將是讀取1個完整字節,然后更改該字節中的位,然后將1個完整字節寫回到文件中。

無論如何,您將不會在磁盤上節省任何空間,因為您始終需要向磁盤寫入1個完整的扇區,通常1個扇區= 512字節。 因此,任何低於512字節的文件將始終使用磁盤上的全部512字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM