【问题标题】:Search for new line position in a VB.NET string variable using InStr使用 InStr 在 VB.NET 字符串变量中搜索新行位置
【发布时间】:2009-08-07 11:12:57
【问题描述】:

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

“这是更新:
我的应用程序有问题”

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

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

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

我怎样才能得到我需要的数据?

【问题讨论】:

  • 你引用了 vbCrLf 吗?它应该在没有引号的情况下使用。

标签: vb.net search string newline


【解决方案1】:

使用 vbCrLf 而不是“vbCrLf”

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

【讨论】:

    【解决方案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
    

    【讨论】:

    • 不是 CR+LF (Char(13) + Char(10)),反之亦然。
    • @Guffa:你当然是对的;把它翻过来。一定是热度。
    • 在 vb.net 中,您还可以使用单独的 vbCr 和 vbLf 常量,而不必调用 Chr() 函数。
    【解决方案3】:

    我不认为我在此讨论中添加了太多内容,但值得一提的是……您也可以像在“ControlChars.CrLf”中一样使用“ControlChars”。

    ControlChars @ MSDN

    【讨论】:

      【解决方案4】:

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

          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
      

      【讨论】:

        猜你喜欢
        • 2014-03-31
        • 2011-01-02
        • 1970-01-01
        • 2020-12-05
        • 1970-01-01
        • 2022-01-09
        • 1970-01-01
        • 2014-01-22
        • 1970-01-01
        相关资源
        最近更新 更多