簡體   English   中英

C#Streamwriter格式化問題

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM