如何用空格替换下面的字符并写入下一行?

时间:2010-11-30 12:51:07

标签: c#

如何用\ n或空格替换形状为(□)的方形字符,并使用c#在下一行写入?...正在写入文本文件中□...这是我的代码....

 string line = dt.Rows[0].ItemArray[0].ToString().Replace(Environment.NewLine, "<br>");

 if (line.IndexOf(line2, StringComparison.CurrentCultureIgnoreCase) != -1)
    {
        if (!patternwritten)
        {
            dest.WriteLine("");
            dest.WriteLine("Pattern Name : " + line2 );
             patternwritten = true;
         }

  dest.WriteLine("LineNo : " + counter.ToString() + " : " + "" + line.TrimStart());
}

但它正在用□编写整行。任何建议??

3 个答案:

答案 0 :(得分:5)

我的猜测是你的字符串包含简单的换行符,而你的Environment.NewLine值是“\ r \ n”。

应对此问题的一种简单方法是执行两次替换:

text = text.Replace("\r\n", "<br>")
           .Replace("\n", "<br>")

要找到我们的确定正在发生的事情,您应该在二进制文件编辑器中打开您的文件,并查看文件中的二进制数据。我猜你会在二进制文件中找到一个由0x0A表示的字符。

答案 1 :(得分:1)

在我看来,你遇到了Unix换行问题。

尝试使用此方法:

public static string ConvertToWindowsNewlines(string value)
{
    value = value.Replace("\r\n", "\n");
    value = value.Replace("\n", "\r\n");
    return value;
}

编辑:找到解决方案:http://dotnetperls.com/whitespace

包含有关C#和char替换的更多提示。

答案 2 :(得分:0)

使用Trim()而不是TrimStart(),它会将其修剪掉