gpt4 book ai didi

Excel VBA 位控制

转载 作者:行者123 更新时间:2023-12-03 01:36:43 24 4
gpt4 key购买 nike

在 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 字节。

关于Excel VBA 位控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49688394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com