2013-09-27 4 views
0

Я хочу, чтобы игнорировать участие в синей коробке и начать читать мой текстовый файл со стрелкойИгнорировать первые 8 строк txt-файла при чтении? C#

enter image description here

Я планирую просто циклически первые 8 строк и хранить их в переменной нежелательной. Если я это сделаю, мой дробилка теперь будет на 9-й линии, поэтому я могу начать читать оттуда? Мой код определенно не прав, он даже не читает первые 8 строк.

private void button1_Click(object sender, EventArgs e) 
    { 
     OpenFileDialog ofd = new OpenFileDialog(); 
     if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 
      StreamReader sr = new StreamReader(File.OpenRead(ofd.FileName)); 


      for (int i = 0; i < 8; i++) 
      { 
       string junk = sr.ReadLine(); 
      } 

      sr.Dispose(); 

     } 
    } 
+1

Как вы знаете, что не читает эти строки? –

+0

пройдите через него с помощью отладчика – jltrem

+0

Насколько велик файл? Вы можете читать все одним звонком – Steve

ответ

9

Вы можете использовать это:

var lines = File.ReadLines(ofd.FileName); 

foreach (string line in lines.Skip(8)) 
    Trace.WriteLine(line); 

Поскольку File.ReadLines возвращает IEnumerable<string>, строки загружаются только тогда, когда итерация.

Подробнее: File.ReadLines Методhttp://msdn.microsoft.com/en-us/library/dd383503.aspx

+0

Я попытался использовать это, но file.readlines продолжал подчеркиваться красным цветом (я думаю, что мне не хватает некоторых библиотек?) – user2788405

+0

Это доступно с .NET 4.0 и выше. Найдите дополнительную информацию по ссылке, которую я предоставил. –

0

Это немой, но это Подход работает. Вы должны использовать линию.

 StreamReader sr = new StreamReader(@"TextFile1.txt"); 

     int i = 1; 

     while (!sr.EndOfStream) 
     { 
      if(i > 8) 
       Console.WriteLine(sr.ReadLine()); 
      sr.ReadLine(); 
      i++; 
     } 
+0

Я попытался использовать это, но 1) shouldnt it i <8 – user2788405

+0

Я попытался использовать это, но 1) shouldnt it i <8? 2) он не работает. Я имею в виду, что он даже не отображает первую строку из 8 в моем текстовом поле, когда я делаю textBox1.Text = sr.ReadLine(); – user2788405

Смежные вопросы