фильтрация определенных строк в C # - PullRequest
2 голосов
/ 29 сентября 2011

Я искал, но не нашел надежного решения для моего проекта, который работает.Я хочу открыть текстовый файл и отфильтровать его только для строк, начинающихся с «описания».

Это лишь небольшой пример того, что в моем текстовом файле:

interface Ethernet1/5
  description INFRA:TRUNK:myserver4
  switchport mode trunk
  switchport trunk native vlan 64
  spanning-tree mst pre-standard
  spanning-tree guard root
  udld aggressive
  no shutdown

 interface Ethernet1/6
  description INFRA:TRUNK:easyserver99
  switchport mode trunk
  switchport trunk native vlan 99
  spanning-tree mst pre-standard
  spanning-tree guard root
  udld aggressive
  no shutdown

Это мой код, который я сейчас использую, но он не выполняет свою работу.

private void scrapeConfig_Click(object sender, EventArgs e)

    {
    string textline;
    string description;

    //Open and read file
    System.IO.StreamReader objReader;
    objReader = new System.IO.StreamReader(Chosen_File);
    textBox1.Text = objReader.ReadToEnd();

    //Scrape for certain lines
    do
    {
    textline = objReader.ReadLine() + "\r\n";
    textBox1.Text = textline;
    } while (objReader.Peek() != -1);

    //Close
    objReader.Close();
}

Спасибо за вашу помощь заранее!

1 Ответ

9 голосов
/ 29 сентября 2011
var lines = File.ReadAllLines(filepath)
                .Select(l=>l.Trim())
                .Where(l=>l.StartsWith("description"));
textBox1.Text = String.Join(Environment.NewLine, lines);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...