【发布时间】:2011-09-08 17:48:46
【问题描述】:
如何在Starting Index 和第一次遇到的Ending Index 之间的另一个字符串中读取一个字符串
我有一个巨大的文件,其中包含每个客户的信息,他们将客户信息与开始和结束索引分开,我需要获取特定的客户信息来显示。
Dim oFile As New FileInfo(sFileName)
Dim sFileContent As String = oFile.OpenText().ReadToEnd()
Dim iStartIndex As Integer = sFileContent.IndexOf(roNotification.StartByte)
Dim iEndIndex As Integer = sFileContent.IndexOf(roNotification.EndByte, iStartIndex)
Dim sCustomerInfo As String = sFileContent.Substring(iStartIndex + roNotification.StartByte.Length - 1, iEndIndex)
没什么。但它会读取文件并将那个巨大的文件放入sFileContent 变量中。我不确定这种方式的效率如何(似乎比 MemoryStream 差)。
索引字符串可以多于 1 个字符。
编辑:
有关文件的更多信息,该文件仅包含一大行,而该行包含所有信息。除了阅读它之外,我无法触及该文件,因为它包含非常机密的数据。
我正在寻找起始索引和第一次遇到的结束索引之间的字符串。
【问题讨论】:
-
你说这是一个“巨大”的文件——有多大?性能在这里有多重要?它真的是您要查找的字符串“起始索引”吗?文件是否被分成几行或其他有用的东西?
-
请参考我的编辑,@Jon Skeet。谢谢
-
MemoryMappedFile可能是一个值得考虑的选项,尤其是如果您非常清楚要在文件中的哪个位置查找数据。 -
Starting Index和Ending Index是字符串吗?如果是这样,请编辑问题以使其更清楚(围绕您定义这些值的位置)