2013-07-04 86 views
0

的字符串我尝试找到的是34个字符长,它的字后,“文件”搜索文件

我怎么能在34个字符显示,以单一字符串?

这是我走到这一步:

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

这只是返回:

16379 

任何帮助表示赞赏。

编辑

与史蒂夫的帮助下,我现在已完成了这一工作:

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 

现在我只需要能够循环这一点,他们返回到阵列/其他文本框是有不止一个这样的例子,我不知道如何做到这一点?

回答

1

斯普利特的单步你的代码,所以它更清楚你要做什么

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

这伟大工程,只是不得不做出一些修改,但如果我的文件有一组以上的字符串我需要?就像在文件后面有另一个叫做“file”的单词那么它之后有一个不同的字符串? –

+1

[IndexOfAny](http://msdn.microsoft.com/zh-cn/library/56y4ddbk.aspx)有一个重载,它以起点执行搜索。因此,如果你有一个循环,并且在每个循环中使用'pos + 39'变量的值作为下一次调用IndexOfAny的起始点,那么你可以找到每个出现的文本块。 (39 =文件的4个字符+ 1个空格+找到的字符串的34个字符) – Steve