vb.net 读取结构化文件.dat 到数据库

华文科技 2018-07-23 03:28:22
Public Class Form2
<StructLayoutAttribute(LayoutKind.Sequential, CharSet:=CharSet.Ansi, Pack:=1)> Structure Record '定义一个Record的结构

Dim numb As Integer
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=3)> Dim pfm As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=3)> Dim lm As String
Dim ll As Single
Dim zl As Single
Dim wc As Single
Dim year As Short
Dim mon As Byte
Dim day As Byte
Dim hour As Byte
Dim Min As Byte
Dim sec As Byte
Dim ido As Short
Dim idi As Short
End Structure
Dim path As String = "d:\sl3000.dat"

Dim uRecord As Record
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim fs As FileStream = File.OpenRead(path)
Dim br As BinaryReader = New BinaryReader(fs)

Using (fs)
Dim b(j) As Byte
Dim temp As UTF8Encoding = New UTF8Encoding(True)
While fs.Read(b, 0, b.Length) > 0
' Console.WriteLine(temp.GetString(b))
RichTextBox1.Text = RichTextBox1.Text + temp.GetString(b) & vbCrLf
End While
End Using

fs.Close()
End Sub
在文本上是乱码呀,各位大神如何读出来,在文本上显示
...全文
505 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
华文科技 2018-08-10
  • 打赏
  • 举报
回复
还是我自己来回答。
Dim i As Integer
For i = 0 To Recordnumb - 1
sr.BaseStream.Seek(i * 39, SeekOrigin.Begin)
uRecord.numb = sr.ReadInt32
sr.BaseStream.Seek(i * 39 + 3, SeekOrigin.Begin)
uRecord.pfm = sr.ReadChars(5)
sr.BaseStream.Seek(i * 39 + 10, SeekOrigin.Begin)
uRecord.lm = sr.ReadChars(3)
sr.BaseStream.Seek(i * 39 + 16, SeekOrigin.Begin)
uRecord.ll = sr.ReadSingle
uRecord.zl = sr.ReadSingle
uRecord.wc = sr.ReadSingle
sr.BaseStream.Seek(i * 39 + 28, SeekOrigin.Begin)
uRecord.year = sr.ReadInt16
uRecord.mon = sr.ReadByte
uRecord.day = sr.ReadByte
uRecord.hour = sr.ReadByte
uRecord.Min = sr.ReadByte
uRecord.sec = sr.ReadByte
uRecord.ido = sr.ReadInt16
uRecord.idi = sr.ReadInt16
'写入数据到sql数据库........

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧