[英]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.