读取不同索引处的行

本文关键字:索引 读取 | 更新日期: 2023-09-27 18:11:06

下面是我编写的一些代码,用于在文本文件中搜索数字。这对我想做的事很有用。现在它找到了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);
                      {
                              {

                              }
                          }
                    }
                }
            }
        }

读取不同索引处的行

您可以使用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
                }
            }