2010-01-11 147 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)