我必須在vb .NET中以編程方式刪除文件的最後一行空行。有時候,只有一條空行,有時是兩條(但從不多)。刪除vb中的最後一個字符(空行)。NET
我使用這些代碼行現在在:
fs = New FileStream(Fic_source, FileMode.Open, FileAccess.ReadWrite)
fs.Seek(-50, SeekOrigin.End)
Dim strEOF As String = New StreamReader(fs).ReadToEnd()
strEOF = strEOF .Replace(vbCrLf, "") '
strEOF = strEOF .Replace("\r", "") ' Removes every CR/LF/CRLF from the end of the file
strEOF = strEOF .Replace("\n", "") '
strEOF = String.Concat(strEOF , vbCrLf) ' adds an empty line to finish the file correctly
但我似乎無法弄清楚如何在過去50個字符從我流替換到strEOF,任何人有一個想法?
如何「有時是兩個(但絕不會)「翻譯成」最後50個字符「?請在你的問題中更精確。另外,請閱讀常見問題解答並查看是否可以將您的問題應用於廣泛的受衆羣體。因爲這是你的問題太局部化了,必然會在沒有答案的情況下關閉。 – 2013-02-12 19:39:39
我不認爲'strEOF.Replace(「\ r」,「」)'實際上會將vbCr替換爲空字符串。 ''\ n「'相同。 [見此](http://stackoverflow.com/questions/515722/new-line-character-in-vb-net)。 – Neolisk 2013-02-13 01:33:04
你不應該在VB中使用C風格轉義。您的替換功能在字面上查看「\ r」和「\ n」 - 而不是*查找ASCII 13(「\ r」)和ASCII 10(「\ n」)。 – jinzai 2017-12-20 19:41:07