我在VB.NET中有一个应用程序,它从数据库中获取字符串数据。该字符串的数据如下所示:
“这是更新:
有疑问
我对申请“
我只需要新行之后的部分数据,即“我对应用程序有疑问”。
为此,我尝试使用InStr搜索位置,其中字符串在新行中包含数据。我尝试了很多选项,但它们不起作用。
我使用了“vbCrLf”,Chr(13),“\ r \ n”,“\ n”,“<br/>
”,Environment.NewLine,但它们都不起作用。
如何获取所需数据?
答案 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”。
答案 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