作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
语境
我有一个使用这种特殊类型的 vb6 软件:
Type Example
A As Integer
B As Single
C As String * 10
D As Byte
E As String
End Type
这个结构完全保存在一个带有简单“put”的二进制文件中:
Dim Numfile%
Numfile = FreeFile
[...]
Put #Numfile, , example_instance
[...]
问题
Structure Example
Dim A As Short
Dim B As Single
Dim C() As Char ' ---> This should replace String * 10.
Dim D As Byte
Dim E As String
End Structure
然后我用以下命令读取文件:
Dim n as short = FreeFile()
Dim instance as Example
If FileExists(filename) Then
FileOpen(n, filename, OpenMode.Binary, OpenAccess.Read)
[...]
FileGet(n, instance)
[...]
但是,很明显,原始数据没有被正确检测到。
最佳答案
我会写这个作为答案,即使我不是 100% 确定它会起作用,因为这不是我做过的事情。 VBFixedString
属性存在专门用于 VB6 将使用固定长度的情况 String
.因此,我认为像这样声明你的类型:
Structure Example
Dim A As Short
Dim B As Single
<VBFixedString(10)> Dim C As String
Dim D As Byte
Dim E As String
End Structure
应该做的伎俩。
关于vb.net - 如何从 vb.net 中的二进制文件中读取 vb6 固定长度字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66063026/
我是一名优秀的程序员,十分优秀!