我必须在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