如何从C#中的文本文件中删除空格行

时间:2014-09-24 06:49:32

标签: c# c#-3.0

如何从文本文件中删除空格行,并使用StreamReader在C#中启动下一行。

我的代码是,

try
{
    StringBuilder sb = new StringBuilder();
    if (File.Exists(Server.MapPath("OrderDetails.txt")))
    {
        string sFileName = Server.MapPath("OrderDetails.txt");
        using (StreamReader StreamReader1 = new StreamReader(sFileName))
        {
            sb.Append(StreamReader1.ReadToEnd());
            StreamReader1.Close();
            try
            {
                if (Session["Package1"].ToString() == "true")
                {
                    sb.Replace("{Package1}", "Package1");
                }
                else
                {
                    sb.Replace("{Package1}", null);
                }

                if (Session["Package2"].ToString() == "true")
                {
                    sb.Replace("{Package2}", "Package2");
                }
                else
                {
                    sb.Replace("{Package2}", null);
                }

                if (Session["Package3"].ToString() == "true")
                {
                    sb.Replace("{Package3}", "Package3");
                }
                else
                {
                    sb.Replace("{Package3}", null);
                }

            }
            catch { }
        }
    }

    return sb.ToString();
}
catch (Exception ex)
{
    return "";
}

当Session [" Package2"]为" false",

时,我得到以下输出
  

包1

     

//我在这里获得了线路spce

     

包3

当Session [" Package2"]为" false",

时,我想要这样的输出
  

包1

     

包3

我正在使用VS2008(3.5)。

2 个答案:

答案 0 :(得分:0)

所以你想跳过只有空格的行吗?请使用ReadLine将读者推进到下一行并检查它是否为空:

string line;
using (StreamReader StreamReader1 = new StreamReader(sFileName))
{
    while ((line = StreamReader1.ReadLine()) != null)
    {
        if (!string.IsNullOrEmpty(line.Trim()))
            sb.AppendLine(line);
        // ...
    }
}

答案 1 :(得分:0)

在StringBuilder中,您附加文件中的所有内容,包括用于表示换行符的字符。但是当您尝试替换代码时,只替换除换行符之外的字符串字符。此换行符保留在StringBuilder缓冲区中并导致空行。

我会尝试

......
string replacement = (Session["Package1"].ToString() == "true" ? 
                                          "Package1" + Environment.NewLine, "");
sb.Replace("{Package1}" + Environment.NewLine, replacement);
......