【问题标题】:Textbox displaying extra information when text file is parsed解析文本文件时显示额外信息的文本框
【发布时间】:2013-08-27 19:42:17
【问题描述】:

我的目标:我想解析一个文件并将其显示在一个文本框中。这是代码(感谢 Aviral Singh)。

private void Form1_Load(object sender, EventArgs e)
    {
        var path = @"C:\Users\Smith\Desktop\Settings.txt"; //Path to settings file.
        RichTextBox rtb = new RichTextBox();
        System.IO.StreamReader sis = new System.IO.StreamReader(path);
        rtb.Text = sis.ReadToEnd();
        sis.Close();
        foreach (string line in rtb.Lines)
        {
            if (line.Contains("Installation Technical Manual:") == true)
            {
                string numbers = line.Substring(line.IndexOf("Installation Technical Manual:"));
                textBox1.Text = numbers;
            }
        }
    }

文本文件如下所示:

我的问题:我程序中的文本框显示整行:安装技术手册:(1234567890)。

我只想将带括号的数字 (1234567890). 显示在文本框中。我应该对代码进行哪些更改以删除单词并仅显示带有括号的数字?谢谢你的帮助。 :)

【问题讨论】:

    标签: c# visual-studio-2010


    【解决方案1】:
    numbers = "(" + new String(numbers.Where(Char.IsDigit).ToArray()) + ")";
    

    【讨论】:

      【解决方案2】:

      问题是IndexOf() 会给你你要求索引的字符串的起始位置。在您的示例中,它将为 0,因此从 0 开始的 Substring 调用将返回整个字符串。

      你真正想做的是Substring(IndexOf("Installation Technical Manual:") + "Installation Technical Manual:".Length)。这将为您提供 您的字符串之后的任何内容。

      【讨论】:

        【解决方案3】:

        假设你的行中总是有 ':',

        if(line.Contains(":"))
        {
        string numbers = line.Split(':')[1];
        textBox1.Text = numbers;
        }
        

        您的代码无法正常工作的原因是您将子字符串方法与一个参数一起使用,因此它被用作:

        public string Substring(
            int startIndex
        )
        

        见:http://msdn.microsoft.com/en-us/library/hxthx5h6.aspx

        而你正在传递,line.IndexOf("Installation Technical Manual:") 这将返回)。 见这里:http://msdn.microsoft.com/en-us/library/k8b1470s.aspx 所以你本质上是说 return Substring of string Installation Technical Manual:(number) 从 0 开始,基本上返回整行。

        【讨论】:

          猜你喜欢
          • 2022-11-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-10
          • 1970-01-01
          • 1970-01-01
          • 2015-06-07
          • 2021-02-01
          相关资源
          最近更新 更多