0

这是我放在一起用于在文本文件中搜索数字的一些代码。它对我正在尝试做的事情非常有用。现在它找到 7 个位置,我需要读取 7 个不同索引处的行。什么可能是开始这个​​的最佳方式。谢谢,这是在 C# 中。

private void button1_Click(object sender, EventArgs e)
    {
        richTextBox1.Text = "";

        using (OpenFileDialog dlgOpen = new OpenFileDialog())
        {
            //long count = 0; string line;
            //bool start = false;
            //string line;
            List<String> LinesFound = new List<string>();
            // Available file extensions 
            dlgOpen.Filter = "All files(*.*)|*.*";
            // Initial directory 
            dlgOpen.InitialDirectory = "C://bin";
            // OpenFileDialog title 
            dlgOpen.Title = "Load";
            // Show OpenFileDialog box 
            if (dlgOpen.ShowDialog() == DialogResult.OK)
                textBox1.Text = dlgOpen.FileName;

            {
                string str = System.IO.File.ReadAllText(dlgOpen.FileName);
                Regex reg = new Regex("333333");
                Match sat = reg.Match(str);
                while (sat.Success)
                {
                    richTextBox1.Text += (sat.Index + "                    "); //shows index where 333333 is
                    sat = reg.Match(str, sat.Index + sat.Length);
                      {

                              {


                              }
                          }
                    }
                }
            }
        }
4

1 回答 1

0

您可以使用 ReadAllLines 代替 ReadAllText,并逐行匹配,使用 int[] 变量存储所有匹配的行索引。

var lines = File.ReadAllLines(AppDomain.CurrentDomain.BaseDirectory + "/files/file.txt");

            Regex reg = new Regex("333333");
            string str;
            for(int i =1; i<lines.Length;i++)
            {
                str = lines[i];
                Match sat = reg.Match(str);
                if (sat.Success)
                {
                    richTextBox1.Text += (i + 1 +"                    "); //shows index where 333333 is

                }
            }
于 2013-04-28T02:45:56.963 回答