[英]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.