[英]C# streamwriter formatting issue
首先,我要感谢Stackoverflow成员Pratap .R,因为他帮助我编写了代码。 我的替换功能之一仍然存在一个小的格式化问题。 发生的是,当我将</me>
替换为;
。 我不能在行尾有一个;
在末尾。
using (FileStream strm = new FileStream(exportfile, FileMode.Create))
{
using (StreamWriter writer = new StreamWriter(strm))
{
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader reader = cmd.ExecuteReader();
for (int i = 0; i < reader.FieldCount; i++)
writer.Write((i == 0 ? "" : "|") + reader.GetName(i));
writer.Write("\n");
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
writer.Write
(
(i == 0 ? "" : "|") +
reader[i].ToString().Replace(@"<me> ","")
.Replace(@"</me>", "|").Replace(@"</me>", ";")
.Replace('\n', ' ').Replace('\r', ' ')
);
}
writer.WriteLine();
}
reader.Close();
}
}
这样您就可以看到何时将其替换为“;”。 我不能; 结束行。 任何建议或技巧总是适用的。
如果您不想将</me>
替换为;
,您不应该只删除以下内容:
Replace(@"</me>", ";")
String
对象也有一个很棒的TrimEnd()
函数
string s = "Hello;";
s = s.TrimEnd((char)';');
有什么理由让您在一行上做那么多事情?
阅读您的代码会使我头疼!
string value = reader[i].ToString().Replace(@"<me> ", "").Replace(@"</me>|", "|").Replace(@"</me>", ";").Replace('\n', ' ').Replace('\r', ' ');
if (value.EndsWith(";"))
{
value = value.Substring(0, value.Length - 1);
}
writer.Write((i == 0 ? "" : "|") + value);
您可以随时将其更改为:
writer.Write((i==0?"":"|") + reader[i].ToString().Replace(@"<me> ", "").Replace(@"</me>|", "|").Replace(@"</me>", "; ").Replace('\n', ' ').Replace('\r', ' '));
只需添加一个空间,这是您下一步要做的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.