Vb.net 在文件中搜索特定单词后的字符串

Vb.net 在文件中搜索特定单词后的字符串,vb.net,Vb.net,我试图查找的字符串长度为34个字符,位于单词“file”之后 如何将34个字符显示为单个字符串 到目前为止,我得到的是: Dim key = "name" Dim sr As StreamReader = New StreamReader("C:\file.dat") TextBox2.Text = sr.ReadToEnd.IndexOfAny("file", 34).ToString 这只是返回: 16379 感谢您的帮助 编辑 在Steve的帮助下,我现在可以使用以下工具:

我试图查找的字符串长度为34个字符,位于单词“file”之后

如何将34个字符显示为单个字符串

到目前为止,我得到的是:

 Dim key = "name"
 Dim sr As StreamReader = New StreamReader("C:\file.dat")
 TextBox2.Text = sr.ReadToEnd.IndexOfAny("file", 34).ToString
这只是返回:

16379
感谢您的帮助

编辑

在Steve的帮助下,我现在可以使用以下工具:

    Dim sr As StreamReader = New StreamReader("file.dat")
    Dim data = sr.ReadToEnd()
    Dim pos = data.IndexOf("file")
    If pos >= 0 Then
        TextBox2.Text = data.Substring(pos, 39).Replace("file""", "")
    End If

现在我只需要能够循环这个,并将它们返回到数组/其他文本框中。如果有不止一个这样的实例,我不知道如何做到这一点???

将您的代码拆分为单个步骤,以便更清楚地了解您要做什么

dim data = sr.ReadToEnd()
dim pos = data.IndexOfAny("file")
if pos >= 0 then
  TextBox2.Text = data.Substring(pos, 34)

这很好,只需要做一些修改,但是如果我的文件中有多组我需要的字符串呢?就像文件后面有另一个名为“file”的单词,后面有另一个字符串一样?有一个重载,它以执行搜索的起点为起点。因此,如果您有一个循环,并且在每个循环中使用
pos+39
变量的值作为下一次调用IndexOfAny的起点,那么您可以找到所有出现的文本块。(39=文件的4个字符+1个空格+找到的字符串的34个字符)