【问题标题】:Send Specific Values to BinaryWriter将特定值发送到 BinaryWriter
【发布时间】:2015-01-15 16:27:47
【问题描述】:

我在这里需要帮助,我确实没有想法了。 我需要在下面的代码中做,以便能够从项目(My.resources)中选择一个文件,而不是硬编码这一行 FSR.Write(My.Resources._1_5, 0, My.Resources._1_5.Length) 我希望能够传递一个选定的值,但我不能将My.Resources._1_5 存储到字节变量中,它一直说不能将字节的一维数组存储到字节中。 _1_5 是一个 doc 文件,我有一长串文件可供选择。

 Dim TempFileName As String = "TMPDoc.doc"
        Dim TempFolder As String = My.Computer.FileSystem.SpecialDirectories.Temp
        Dim path As String = Application.StartupPath & "\"
        TempFileName = path & TempFileName

        Dim FS As New System.IO.FileStream(TempFileName, IO.FileMode.Create, FileAccess.Write)
        Dim FSR As New System.IO.BinaryWriter(FS)
        FSR.Write(My.Resources._1_5, 0, My.Resources._1_5.Length)
        FSR.Close()
        FS.Close()

        appWord.Documents.Open(TempFileName)

不确定我是否在解释自己。

【问题讨论】:

  • 它是一个 Byte() 变量,而不是一个 Byte 变量。

标签: vb.net binarywriter


【解决方案1】:

如果My.Resources._1_5 属性很可能是作为字节数组公开的,那么您可以简单地创建一个字节数组变量来指向它,如下所示:

Dim resource_1_5() As Byte = My.Resources._1_5

或者您可以创建一个字节数组列表并将其添加到列表中,如下所示:

Dim resources As New List(Of Byte())()
resources.Add(My.Resources._1_5)

但是,您可能真正想要做的只是通过字符串名称而不是通过具体属性来访问资源。如果是这种情况,您可以通过ResourceManager 按名称获取它,如下所示:

Dim resource_1_5() As Byte = DirectCast(My.Resources.ResourceManager.GetObject("_1_5", My.Resources.Culture), Byte())

请注意,在上面的示例中,GetObject 方法返回一个Byte 数组,但它会将其转换为Object。因此,您需要使用DirectCastCType 将其转换回Byte 数组。

【讨论】:

  • 按预期工作:D 非常感谢您的帮助!抱歉回复晚了
猜你喜欢
  • 1970-01-01
  • 2017-10-03
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
相关资源
最近更新 更多