我有一个 Longs 数组(在 10k 或可能 100k 长的范围内),我必须将它们作为 8 位 little-endians 放入 HEX 文件 (.wav) 中。做这个的最好方式是什么?
我使用了一个简单的 PUT,但它并没有按计划进行。我尝试了一些应该产生的测试值
德 A8 CC 16 00 00 1E 5B
而我得到了
DE A8 FF FF CC 16 00 00 00 00 00 00 1E 5B 00 00
我使用的代码如下。你知道发生了什么以及如何解决这个问题吗?在我尝试的每个值中,记录之间总是有一个额外的 00 00 或 FF FF 。
Sub Gera_sinal()
Dim sinal() As Long
ReDim sinal(3)
'Test values
sinal(0) = -22306
sinal(1) = 5836
sinal(2) = 0
sinal(3) = 23326
'Creates a file and puts the values in it
Dim n_arq As Integer
Dim path As String
path = "C:\Users\DELL\Desktop\App\WAVs\Sinal_VBA.wav"
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(path, True)
a.Close
n_arq = FreeFile
Open path For Binary As n_arq
Put n_arq, , sinal
Close n_arq
End sub