2014-10-22 177 views
1

嗯,所以我認爲標題足夠解釋。希望有人有答案。謝謝...幾乎所有我需要做的是從另一個文本文件替換字符串。有任何想法嗎?用另一個單詞/字符串替換.txt文件中的某個單詞/字符串。 VB.NET

+0

源代碼看看[這裏] [1]有一個很好的解決方案,以做到這一點 [1]:http://stackoverflow.com/questions/15572061/scan-text-file-for-line-containing-a-given-string-and-replace-the-line-with-anot – 2014-10-22 09:29:33

+1

你會很愉快,只是寫一個真實的答案,但是這成爲一個答案,所以我可以說這是答案更... – 2014-10-22 09:40:32

回答

1

最簡單的就是重寫整個文件,如果它不是大:

File.WriteAllText(path, File.ReadAllText(path).Replace(oldText, newText)) 

如果您要更換所有它更困難一點。順便說一句,根據你的定義什麼是一個詞?這裏有一個方法:

Dim newWords = From word In File.ReadAllText(path).Split() 
       Select If(word = oldWord, newWord, word) 
File.WriteAllText(path, String.Join(" ", newWords)) 
+0

好吧生病吧快試試吧,只需重新安裝VB.NET,甚至不問我爲什麼我愚蠢。 ^^ – 2014-10-22 09:27:38

+0

嗯剛剛哪個vb你使用我使用vb 2010,它不起作用的第一件事你打字。也意味着我得到了這樣的腳本:{ 「id」:「1.7.2」, 「time」:「2014-04-02T12:00:00 + 02:00」, 「releaseTime」:「2013 -10-25T15:00:00 + 02:00「, 」type「:」release「,這只是其中的一部分。我需要在開始時替換1.7.2。 – 2014-10-22 09:33:45

+0

@FrostyTosty:我也在使用VS 2010.也許你必須爲第二種方法添加'Imports System.Linq'。根據你的數據: 你應該在你的問題中提到過,因爲我的方法會取代所有1.7.2的出現。您可能希望使用真正的csv解析器來代替具有有意義的屬性(如「ID」和「Time」)來初始化類。 – 2014-10-22 09:36:16

0

你需要的是下面...上stackoverflow

Dim myStreamReaderL1 As System.IO.StreamReader 
     Dim myStream As System.IO.StreamWriter 

     Dim myStr As String 
     myStreamReaderL1 = System.IO.File.OpenText("C:\File.txt") 
     myStr = myStreamReaderL1.ReadToEnd() 
     myStreamReaderL1.Close() 


     myStr = myStr.Replace("OldString", "New String") 
     'Save myStr 
     myStream = System.IO.File.CreateText("C:\FileOut.txt") 
     myStream.WriteLine(myStr) 
     myStream.Close() 
相關問題