这是一个更普遍的问题。我正在读取文档并将其内容保存到字符串变量中。结果变量包含大约1百万个字符(无需清理)。然后我的代码将搜索字符串,并提取关键字。但是,我在一个问题上陷入困境:
如果我将字符串直接传递给消息框,它将使用Mid:
显示内容Messagebox.Show(Mid(searchString, startPos, endPos))
但是,如果我首先将mid传递给字符串变量,则内容为空,并且消息框不显示任何内容:
Dim myString as String
myString = Mid(searchString, startPos, endPos)
Messagebox.Show(myString)
当我使用.substring和使用stringbuilder时会发生同样的效果。
有人知道为什么会这样吗?我假设在任务期间发生了一些事情,但我不确定丢失了什么?
以下是一段代码:
searchPos = textString.IndexOf(searchText, searchPos, StringComparison.OrdinalIgnoreCase)
MessageBox.Show(searchPos)
MessageBox.Show(Mid(textString, searchPos, 100))
因此,不一致性如下:textString的长度约为3,700,000个字符。当我找到indexOf时,第一个Messagebox中返回的值是455,225。但是,如果我尝试使用Mid拉出字符,则第二个消息框为空白。
此外,虽然它声称是3,700,000个字符,但如果我在textString上做一个消息框,我只会显示大约6个字符的XML似乎。正在搜索的文件是一个旧的.ppt文件,我知道我可以解决它,但我对计算机如何正确找到我的searchText索引感到困惑,但后来无法向我显示任何内容。
思想?