我正在用Visual Basic编写一个程序,用于在Microsoft Access数据库中进行写入和读取。从数据库读取时,我尝试执行的一个功能是确定多行字符串中写入数据库然后从数据库中读取的行数。这是我到目前为止没有运气的尝试。
Dim stringLines() As String = databaseReader("multilineString").ToString.Split(CChar("Environment.NewLine"))
Dim stringLinesCount As Integer = stringLines.Length
出于某种原因,无论字符串有多少行,这总是导致stringLinesCount
等于1。在此示例中,我使用的是Environment.NewLine
,但我也尝试了\n
,\r
,vbCr
,vbLf
和vbCrLf
,它们都会产生一个值。由于这些似乎都不起作用,我可以使用什么来确定行数?
修改
Dim splitCharacters() As Char = {CChar(vbCrLf), CChar(vbCr), CChar(vbLf), CChar(Environment.NewLine), CChar("\n"), CChar("\r")}
Dim stringLines() As String = databaseReader("multilineString").ToString.Split(splitCharacters)
Dim stringLinesCount As Integer = stringLines.Length
答案 0 :(得分:1)
由于Chris Dunaway提供了我认为有帮助的答案,但将其作为评论发布,这就是他所说的:
VB无法使用C#样式转义序列,因此
CChar("\n")
和CChar("\r")
在VB中无意义。此外,调用CChar("Environment.NewLine")
是错误的,因为您正在尝试将实际字符串“Environment.NewLine”转换为单个字符,这显然不起作用。您可以直接在String.Split的调用中使用Environment.Newline。
如果Chris决定将他的评论作为答案发布,请告诉我,以便我可以将其删除。