解析.text文件并在C#的文本框中显示

时间:2013-08-27 17:34:23

标签: c# visual-studio-2010

我的计划:包含5个文本框,如下图所示:

enter image description here

我的目标:我想在冒号“:”之后解析settings.txt文件中的任何内容。因此,例如:我想在阅读“第一手册:(459800090581)”后,在我的第一个文本框中显示(459800090581)。。来自Settings.txt文件的行。这适用于其他各个领域。

我试图谷歌如何解析文本文件,但我无法找到一个简单的文件解析程序,这将帮助我学习和理解如何在C#中进行文件解析。该计划将帮助我快速,轻松地学习这项技术,非常感谢您的帮助!谢谢!! :)

2 个答案:

答案 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.SplitString.IsNullOrWhiteSpaceFile.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;
                }
            }
        }