确定从 Access 数据库读入的字符串中的行数

Posted

技术标签:

【中文标题】确定从 Access 数据库读入的字符串中的行数【英文标题】:Determine Number of Lines in a String Read in from an Access Database 【发布时间】:2014-11-30 23:08:18 【问题描述】:

我正在用 Visual Basic 编写一个程序,该程序在 Microsoft Access 数据库中写入和读取数据。从数据库读取时,我尝试执行的功能之一是确定写入数据库然后随后从数据库读取的多行字符串中的行数。这是我迄今为止尝试过的,但没有成功。

Dim stringLines() As String = databaseReader("multilineString").ToString.Split(CChar("Environment.NewLine"))
Dim stringLinesCount As Integer = stringLines.Length

出于某种原因,无论字符串有多少行,这总是导致stringLinesCount 等于一。在此示例中,我使用了Environment.NewLine,但我也尝试了\n\rvbCrvbLfvbCrLf,它们的值都为1。由于这些似乎都不起作用,我可以使用什么来确定行数?

编辑:

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

【问题讨论】:

你确定有分隔符吗?文本很可能只是一个连续的行。 @Fionnuala 程序所做的一件事就是将数据库中的文本读回到富文本框中。执行此操作后,在将数据从数据库读回富文本框时,将保留在将数据写入数据库时​​所做的所有行。因此,我知道它没有被解释为一条连续的线。 Change your Split() to look more like this answer. @LynnCrumbling 请看我的编辑。这就是你在说的吗?如果是这样,它就不起作用。 VB 不能使用 C# 风格的转义序列,所以 CChar("\n")CChar("\r") 在 VB 中没有意义。此外,调用CChar("Environment.NewLine") 是错误的,因为您试图将实际字符串“Environment.NewLine”转换为单个字符,这显然是行不通的。您可以直接在对 String.Split 的调用中使用 Environment.Newline。 【参考方案1】:

由于 Chris Dunaway 提供了我认为有帮助的答案,但将其作为评论发布,他是这样说的:

VB 不能使用 C# 风格的转义序列,所以 CChar("\n")CChar("\r") 在 VB 中是没有意义的。此外,调用CChar("Environment.NewLine") 是错误的,因为您试图将实际字符串“Environment.NewLine”转换为单个字符,这显然行不通。您可以直接在对 String.Split 的调用中使用 Environment.Newline。

如果 Chris 决定发表他的评论作为答案,请告诉我,以便我删除它。

【讨论】:

以上是关于确定从 Access 数据库读入的字符串中的行数的主要内容,如果未能解决你的问题,请参考以下文章

VB中读入文件,如何获得文本的行数

将 Access 数据库中的数据读入列表框

如何从数据库查询中填充组合框?

ORACLE SQL 查询从其他表中的行字符串匹配的行返回值

为啥 sscanf() 不将 CSV 文件中的行读入数组?

将文件中的行读入Bash数组[重复]