C#如何格式化readline输出

时间:2016-11-03 13:02:52

标签: c# format readline

目前,我已经在富文本框中读取了从文本文件中输出一行的行,但我想格式化该行

 if (UsernameCheckers.Text != "Username")
            {
                string line;

                StringBuilder sb = new StringBuilder();

                using (System.IO.StreamReader file = new System.IO.StreamReader(@"\\studprint2\PCOUNTER\DATA\REJECT.LOG"))
                {
                    while ((line = file.ReadLine()) != null)
                    {
                        if (line.IndexOf(UsernameCheckers.Text, StringComparison.OrdinalIgnoreCase) >= 0)
                        {
                            sb.AppendLine(line.ToString() + "\n");
                        }
                    }
                }
                DisplayBox.Text = sb.ToString();
            }

一个例子是

BCROSS11,Documentname.doc,\ STUDPRINT2 \ computername,15/05 / 2010,14:48,\ 1234566788,余额不足,,, / Ts = 4BEEA622,107502,10 ,,

我希望它说

Username: BCROSS11

File name: Documentname.doc

Error: Insufficient balance

Date: 15/05/2010,14:48

Computer name: \STUDPRINT2\computername

我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果你的字符串片段以相同的顺序保留在每一行,你可以使用 String.Split方法并将其切片到您需要的部分中。

这是一个小型控制台应用程序,用于说明您的案例中的用法:

static void Main(string[] args)
{
    string test = @"BCROSS11,Documentname.doc,\STUDPRINT2\computername,15/05/2010,14:48,\1234566788,Insufficient balance,,,/Ts=4BEEA622,107502,10,,";

    // Split the string and it will return an array of strings
    string[] split_array = test.Split(',');

    // Test output to the console
    Console.WriteLine(String.Join("\n", split_array));
    Console.WriteLine("END");

    Console.ReadKey();
}

输出将如下所示:

BCROSS11
Documentname.doc
\STUDPRINT2\computername
15/05/2010
14:48
\1234566788
Insufficient balance


/Ts=4BEEA622
107502
10


END

现在您可以计算线数,您将知道您必须在哪个位置提取信息。不要忘记索引以0而不是1开头! 请注意,字符串:",,,"将被拆分为3个空字符串。这就是为什么在输出中你有空行。