我有一个包含多行的文字文档,但每个“主题”都用一个空行隔开..比如..
Block 1
Line 1
Line 2
Block 2
Line 1
Line 2
等等。我已经尝试了很多使用vbcr等的变体..但是不能让每个块被“空行”分开。目标是单独使用每个块的数据。
非常感谢任何帮助或指示。提前谢谢。
答案 0 :(得分:1)
我对你要做的事情有点不清楚:你是不是想解析每个"阻止"数据分开,需要将空行识别为空行?
如果是这种情况,您可以按如下方式阅读每一行:
Dim objReader As New System.IO.StreamReader(FILE_NAME)
Dim tempString As String = ""
Do While objReader.Peek() <> -1
tempString = objReader.ReadLine().Trim()
if tempString.equals("") Then ' we have a blank line ...
Else
' Do something else with the tempstring line
End If
Loop
可能有更复杂的方法可以做到这一点,但这就是我要做的事情。
答案 1 :(得分:0)
尝试常规表达。
Import System.Text.RegularExpressions 'may be needed in your file to use below code...
Dim blocks() As String = Regex.Split(myData, "\n[ \t]*\n")
' regex looks for the occurrence of an enter char "\n" following by an optional amount of whitespace "[ \t]*" following by another enter character
你可能还需要混合一些&#34; \ r&#34;在那个正则表达式作为&#34;回车\ r&#34;和一条新线\ n&#34;有时在数据中以不同的方式混合。 &#34; \ r \ n&#34; = vbCrLf &#34; \ R&#34; = vbCr &#34; \ n&#34; = vbLf
答案 2 :(得分:0)
Dim subjectsWithLines()as string = split(stringThatYouReadFromFile,chr(10))
现在有不同种类的BLANK行,如果chr(10)不起作用,那么尝试使用chr(13)或Environment.newline
芝加哥迈克的答案也有效,但由于不同类型的“空白线”,请使用
tempString.Count&lt; 1而不是等于