使用InStr在VB.NET字符串变量中搜索新行位置

时间:2009-08-07 11:12:57

标签: vb.net search string newline

我在VB.NET中有一个应用程序,它从数据库中获取字符串数据。该字符串的数据如下所示:

  

“这是更新:
  我对申请“

有疑问

我只需要新行之后的部分数据,即“我对应用程序有疑问”。

为此,我尝试使用InStr搜索位置,其中字符串在新行中包含数据。我尝试了很多选项,但它们不起作用。

我使用了“vbCrLf”,Chr(13),“\ r \ n”,“\ n”,“<br/>”,Environment.NewLine,但它们都不起作用。

如何获取所需数据?

4 个答案:

答案 0 :(得分:2)

换行符可以仅通过换行符(Chr(10))或回车符/换行符对(Chr(13) + Chr(10))表示。根据数据来源,这可能会有所不同。实现此目的的一种方法是在这两个字符上分割字符串,并选择删除空元素,丢弃第一个字符并将其他字符连接在一起,并在它们之间添加换行符:

ReadOnly separators As Char() = New Char() {Chr(10), Chr(13)}
Private Function StripFirstLine(ByVal input As String) As String
    Dim parts() As String = input.Split(separators, StringSplitOptions.RemoveEmptyEntries)

    If parts.Length > 1 Then
        Return String.Join(Environment.NewLine, parts, 1, parts.Length - 1)
    Else
        Return input
    End If

End Function

答案 1 :(得分:2)

使用vbCrLf而不是“vbCrLf”

也可能只有换行或只有carrige返回,因此使用Chr(10)和Chr(13)也可能是更好的选择。

答案 2 :(得分:1)

我不认为我在这个讨论中增加了很多东西,但是它的价值是多少......你也可以像“ControlChars.CrLf”一样使用“ControlChars”。

ControlChars @ MSDN

答案 3 :(得分:1)

此脚本以行的形式返回字符串,然后将其添加到列表框中:

    Dim fileContents As String
    fileContents = My.Computer.FileSystem.ReadAllText("d:\a.txt")
    TextBox2.Text = fileContents
    Dim a As Integer = 1

    For i = 1 To fileContents.Length
        Dim xx As String = Mid(fileContents, i, 1)
        If xx = Chr(10) Then
            If Mid(fileContents, i - 1, 1) = Chr(13) Then
                ListBox1.Items.Add(Mid(fileContents, a, (i - a) - 1))
                a = i
            End If
        End If
    Next