字符串中的字符无效(空行)

时间:2013-12-04 02:09:20

标签: vb.net visual-studio-2010 replace trim findstr

我收到错误“路径中的无效字符”。我的路径使用$ findstr命令输出到.txt文件,并在应用程序的过程中被删除,所以我写了一个简单的子句,将字符串输出到文本框,看看是什么引起了错误。

Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
    Dim Folder = Application.StartupPath & "\PRODUCTION"
    Dim MyFile As String = File.ReadAllText(Folder & "\results3.txt")
    MyFile.Replace("/n", "") ' One of my various attempts
    TextBox2.Text = Folder & "\" & MyFile & "<--END"
End Sub

出现的一个例子:

C:/user/.../file.asasm
<--END

由于某种原因,findstr命令在我的路径之后添加了第二个空行,到目前为止我无法将其删除。根据其他几个主题的建议,我试过了:

MyFile.Trim() ' From MSDN is seems this only removes null spaces and not blank lines
MyFile.TrimEnd() ' Same result as trim
MyFile.Replace("/n","") ' I'm not sure if the /n parameter can be used in this way
MyFile.Replace(10,"") ' I thought this one for sure would work since 10 corresponds to a new line in the ASCII Table

任何有助于解决此问题的帮助将不胜感激。我意识到这个主题还有其他几个主题,但似乎没有一个解决方案在这里工作。

修订版 我在代码中实现的解决方案是

MyFile = MyFile.Replace(Envirnment.NewLine,"")

3 个答案:

答案 0 :(得分:2)

你试过了吗?

MyFile.Replace(Environment.NewLine, "")

在Windows上应该与:

相同
MyFile.Replace(vbCrLf, "")

还可以尝试:

MyFile.Replace(vbCr, "")

MyFile.Replace(vbLf, "")

根据你所拥有的换行符的类型,要么适合你。

编辑:关于MyFile.Replace(10,"")为什么不适合您的原因。你成了隐式类型转换(VB.NET的一个特性)的受害者,所以这一行被执行为:

MyFile.Replace("10","")

如果您想避免此类问题,请确保您拥有Option Strict On

答案 1 :(得分:2)

修剪也可以MyFile = MyFile.Trim(vbNewLine.ToCharArray)

答案 2 :(得分:1)

Environment.NewLine可能是引用换行符的最佳方式。 "/n"绝对不是。首先,你肯定会想到"\n",而不是"/n" - 另一方面,在vb.net中,甚至反斜杠都是按字面解释的(不是控制字符)。