如何从文本文件中删除空格行,并使用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)。
答案 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);
......