目前,我已经在富文本框中读取了从文本文件中输出一行的行,但我想格式化该行
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
我该怎么办?
答案 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个空字符串。这就是为什么在输出中你有空行。