2010-01-11 93 views
1

在VB.net中,我试图从文件读取特定行。在TXT文件中的行的一个例子是:从VB中的txt文件读取特定行.net

[PATH] = "/this/directory/run.exe" 

现在我知道如何打开文件进行读,VB编写,但我需要分析出在“”(引号)的路径。任何帮助将不胜感激!!

--Adam

+0

该路径是否可以包含引号?如果不是,你确定吗?如果是这样,他们如何逃脱? – SLaks 2010-01-11 23:29:45

+1

您是否在询问如何在文件中找到此行,或者您是否已经阅读并识别此行,并且只需要解析路径? – itowlson 2010-01-11 23:34:34

+0

我需要找到这一行,然后解析出该部分。对于滋扰 – Niphoet 2010-01-11 23:37:30

回答

2

寻找线路取决于它的显着特点,但基本上这个想法是使用LINQ。例如:

Dim line As String = File.ReadAllLines(path).FirstOrDefault(Function (s As String) s.StartsWith("[PATH]") 

这会让您第一行以“[PATH]”开头。如果你需要更好的歧视,你可以使用更复杂的匹配,如正则表达式。

然后,您可以按照Rubens或SLaks的答案从行中提取路径。

+0

我得到了它的工作,感谢一百万。 – Niphoet 2010-01-12 14:40:05

0
Dim path As String = thatLine.Split("""")(1) 
+0

对于那条线你是什么意思? – Niphoet 2010-01-11 23:33:25

+0

此代码非常脆弱。 – SLaks 2010-01-11 23:35:28

0

假设永远不会包含引号的路径,你可以使用正则表达式:

Dim regex As New Regex(".+=\s*""(.+)""") 
Dim path As String = regex.Match(line).Groups(1).Value 

或者,你可以搜索报价和提取的部分他们使用字符串函数,就像这样:(假设总会有两个引号)

Dim pathStart As String = line.IndexOf(""""c) + 1 
Dim path As String = line.Substring(pathStart, line.LastIndexOf(""""c) - pathStart)