0

编辑1:我很尴尬......好吧,在我更正路径后它工作得很好,谢谢!继续……实际上,我有一个有符号整数数组,应该作为 little-endian Hex 有符号 2 的补码放在文件中。我知道如果我在文件上放“FF”,结果是 46 46,如果我放“F0”,结果是 46 30。这不是我想要的。那么,我应该一点一点地做到这一点还是有更好的方法?我在这里看到了一点一点的解决方案。我应该在一个新问题上问这个吗?


我想创建一个HEX文件并使用下面的代码在其中写入字符串数组的内容,但是尽管我在文件夹中看到了该文件并且甚至可以在十六进制编辑器上打开它。有人有什么想法吗?PS:有没有更好的方法来做到这一点?

 Dim sinal() As String
 ReDim sinal(3)
 Dim n_arq As Integer


 sinal(0) = "FF"
 sinal(1) = "F0"



 Set fs = CreateObject("Scripting.FileSystemObject")
     Set a = fs.CreateTextFile("C:\Users\DELL\Desktop\App\WAVs\Sinal_VBA.wav", True)
     a.Close

     n_arq = FreeFile
     Open "C:\Users\DELL\Desktop\App\WAVs\Gravações\Sinal_VBA.wav" For Input As n_arq

     Put fileNum, , sinal
4

2 回答 2

0

VBA Visual Basic for Applications - 您使用的是哪个 Microsoft 应用程序?
需要考虑的一些事项...
尝试将已知文件放在路径很短的位置...
例如
C:\test\myfile.txt
使文件内容简单,例如文本文件中的一个单词或数字。
尝试不同类型的文件,看看是否有任何效果。
应用程序是否有权访问文件位置?

于 2020-06-07T19:15:33.107 回答
0

您的一条路径Gravações在其中,而另一条则没有。所以这基本上是一个错字。

为文件名使用一个变量,这样您就不会意外使用不同的路径(就像您在本例中所做的那样)

 Dim sFilename As String
 sFilename = "C:\Users\DELL\Desktop\App\WAVs\Sinal_VBA.wav"

 Set fs = CreateObject("Scripting.FileSystemObject")
 Set a = fs.CreateTextFile(sFilename, True)
 a.Close

 n_arq = FreeFile
 Open sFilename For Input As n_arq

此外,这样,如果将来文件名发生更改,您不必在 2 个地方更改它。

于 2020-06-07T19:23:09.183 回答