VB.NET - 使用空行拆分文本doc

时间:2015-03-27 17:13:13

标签: vb.net visual-studio-2013

我有一个包含多行的文字文档,但每个“主题”都用一个空行隔开..比如..

Block 1
   Line 1
   Line 2

Block 2
   Line 1
   Line 2

等等。我已经尝试了很多使用vbcr等的变体..但是不能让每个块被“空行”分开。目标是单独使用每个块的数据。

非常感谢任何帮助或指示。提前谢谢。

3 个答案:

答案 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而不是等于