2012-10-24 31 views
1

我無法找到一個解決方案如何砍掉一個字符串(文件路徑)的一部分,並且使用什麼剩下來獲得另一個字符串。例如:如果我有文件路徑:Q:\ 2456_blah_blah \ file.txt,我想把整個文件路徑放到一個數組中,並從左邊的字符0到8中刪除(這與我的應用程序一致) d將'blah_blah \ file.txt'留給我的數組。VB 2010剁下字符串的一部分,並得到字符串,最多下一個「」中的文件路徑

(該blah_blah部分將是一個動態的長度,但它永遠是字母。)

於是我想採取「blah_blah \ file.txt的」,並從一開始只是拉直到下一個'\'符號,獲得「blah_blah」作爲一個字符串。在這一點上,我對VB字符串並不太感冒,所以任何幫助都會非常感謝。這只是我的想法,如果有一個更簡單的解決方案,我完全可以接受。

感謝,

+0

您正在刪除的字符串的部分總是要索引0到8,還是會從字符串更改爲字符串? – vane

回答

1

兩個Substring電話應該這樣做。

Dim str As String = "Q:\2456_blah_blah\file.txt" 
str = str.Substring(8, str.Length - 8) 
Dim blah As String = str.Substring(0, str.IndexOf("\")) 
+0

如果文件名超過8個字符或路徑中的數字變爲10萬,會發生什麼?當然,OP表示他的字符串的第一部分最多8個字符是一致的,但並沒有說文件名是一致的長度。 – vane

+0

@vane - 不知道我關注。字符串的長度被考慮在內,所以它不會影響路徑或文件名的長度。如果'8'變成了變量,儘管OP說了什麼,那麼它可以被替換爲一個方法接受的變量。 – keyboardP

+0

謝謝,這是完美的。 – cheapkid1

0

您是否在尋找類似的東西。由於不瞭解所有的細節,所以很難創建出符合您需求的東西,但我會給它一個鏡頭。這將返回您的字符串的blah_blah部分無論大「blah_blah」怎麼,無論文件名是多久,不管你的字符串的第一部分是多久,也不管有多深的路徑去。

Dim test As String = "c:\34242_blah_blah\test.txt" 

Dim startPos As Integer = test.IndexOf("_") + 1 
Dim endPos As Integer = test.IndexOf("\", startPos) 
Dim result As String = test.Substring(startPos, endPos - startPos) 
+0

由於某種原因,它不喜歡「開始」和「結束」,因爲它們沒有被聲明,我是否缺少參考? – cheapkid1

+0

哈哈,我很抱歉。我在c#中寫了這個,讓我把它改爲vb。我的錯誤 – vane

+0

謝謝,現在有效。 :-) – cheapkid1

相關問題