我的计划:包含5个文本框,如下图所示:
我的目标:我想在冒号“:”之后解析settings.txt文件中的任何内容。因此,例如:我想在阅读“第一手册:(459800090581)”后,在我的第一个文本框中显示(459800090581)。。来自Settings.txt文件的行。这适用于其他各个领域。
我试图谷歌如何解析文本文件,但我无法找到一个简单的文件解析程序,这将帮助我学习和理解如何在C#中进行文件解析。该计划将帮助我快速,轻松地学习这项技术,非常感谢您的帮助!谢谢!! :)
答案 0 :(得分:6)
从以下内容开始:
char[] delimiters = new [] { ':' };
foreach (string line in File.ReadAllLines(@"some path"))
{
if (!string.IsNullOrWhiteSpace(line))
{
string[] parts = line.Split(delimiters);
if (parts != null && parts.Length == 2)
{
string label = parts[0];
string value = parts[1];
Console.WriteLine("Label: {0}, Value: {1}", label, value);
}
}
}
请参阅String.Split,String.IsNullOrWhiteSpace和File.ReadAllLines。
答案 1 :(得分:-1)
这应该可以胜任;
var path = @"---"; //Path to your settings file.
RichTextBox rtb = new RichTextBox();
System.IO.StreamReader sis = new System.IO.StreamReader(path);
rtb.Text = sis.ReadToEnd();
sis.Close();
int counter = 0;
foreach (string line in rtb.Lines)
{
if (line.Contains("(") == true && line.Contains(")") == true)
{
counter++;
string numbers = line.Substring(line.IndexOf("("), line.IndexOf(")") - (line.IndexOf("(") - 1));
switch (counter)
{
case 1:
textBox1.Text = numbers;
break;
case 2:
textBox2.Text = numbers;
break;
case 3:
textBox3.Text = numbers;
break;
case 4:
textBox4.Text = numbers;
break;
case 5:
textBox5.Text = numbers;
break;
}
}
}