2013-04-28 2 views
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); 
         { 

           { 


           } 
          } 
        } 
       } 
      } 
     } 
+0

이것이 어떤 언어인지 언급하면 ​​도움이 될 것입니다. 나는 C# 또는 아마도 ASP를 추측하고 있습니다. –

답변

0

대신 ReadAllText의 ReadAllLines를 사용하고, 각 라인 하나 하나와 일치, 모든 일치하는 라인의 인덱스를 저장하기 위해 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 

       } 
      } 
+0

고마워, 내가 가진 색인을 가지고 싶습니다 richTextBox 자신의 각 라인을 인쇄합니다. – DARCOM8

+0

@ user1926235 작동하는 경우 답변으로 표시하십시오. –

+0

죄송합니다. ReadAllText를 ReadAllLines으로 변경해도 원하는 결과가 제공되지 않았습니다. – DARCOM8