并感谢您提供任何指导。
我想读取一个文本文件并使用空格作为分隔符捕获所有值,并将每个条目输入到SQL Server表的字段中。有时条目是三个字符,有时条目是四个字符。
文本文件条目示例:
YYYY: AAA BBBB CCCC DDDD EEEE
FFF GGG HHH III JJJ LLL
ZZZZ: 111 2222 3333 4444 5555
777 888 999 000 123 456
我正在使用StreamReader。我对这一切都有点新意。我非常感谢你对我的耐心。
这是最新的尝试。正是在这一点上,我意识到我不知道如何通过使用空间作为指标来拉动下一个事物而不知道如何解析整条生产线。"我一直在寻找。我似乎并没有在寻找正确的主题\命令。
Do
Dim line As String = Streamy.ReadLine
Dim Model As String = ""
If line.Contains("MODEL") Then
Dim newModelData As New ModelData
Model = line.Substring(6, 3)
newModelData.Model = line.Substring(6, 3)
If newModelData.Model = " " Then
line.Skip(1)
Else
ModelDataList.Add(newModelData)
End If
End If
If line.Contains("YYYY") Then
Dim newModelData As New ModelData
newModelData.Model = Model
'This part below is where I realized I don't understand
'how to parse the line. I've searched online, but
'apparently I just don't know the right topic to search for.
newModelData.SomeModelInfo = line.Substring(23, 3)
ModelDataList.Add(newModelData)
End If
Loop Until Streamy.EndOfStream
db.BulkInsertAll(ModelDataList)
Streamy.Close()
End Using
结束使用 结束子
答案 0 :(得分:0)
您可以使用 .Split 方法分隔由空格分隔的字符串 - 如下所示:
Dim line As String = Streamy.ReadLine
Dim lineParts() As String() = line.Split(" "c)
这里发生的是 lineParts 被声明为字符串数组, = 符号后面的代码位在空格出现的每个点都会分割字符串。
奇怪的代码 - “”c 是为了确保将“”视为char类型而不是字符串类型。
您最终得到的是一个只包含您的文字的数组。
如果在行的开头或结尾有空格,则数组中将包含空元素,其中不包含任何内容。所以我建议您也使用.Trim方法。所以你的代码现在看起来像这样:
Dim line As String = Streamy.ReadLine
line = line.Trim(" "c)
Dim lineParts() As String() = line.Split(" "c)
现在您可以通过 lineParts
的数组开始工作