StreamReader多条线路

本文关键字:线路 StreamReader | 更新日期: 2023-09-27 18:13:42

我正试图弄清楚如何使用StreamReader读取多行。我有一个文本文件,里面有一个需要读取的命令列表。我的代码是有效的,但是它只会读取第一行。这导致我不得不将所有命令移动到一行,命令之间留有空格。这不是一个非常整洁的方法,因为我需要在命令旁边留下评论。示例:CONNECT:"连接到给定的IP。">

public void ConsoleEnter_KeyDown(object sender, KeyEventArgs e)
    {
        string line;
        if (e.KeyCode == Keys.Enter)
        {
            // Read the file and display it line by line.
            StreamReader file = new StreamReader("C:''Users''Home''Desktop''commands.txt");
            while ((line = file.ReadLine()) != null)
            {
                if (line.Contains(ConsoleEnter.Text))
                {
                    COMBOX.Items.Add(ConsoleEnter.Text);
                    COMBOX.Items.Remove("");
                    ConsoleEnter.Text = "";
                }
                else
                {
                    COMBOX.Items.Add("Invalid Command");
                    COMBOX.Items.Remove("");
                    ConsoleEnter.Text = "";
                }
            }
        }
    }

StreamReader多条线路

这是我的一个应用程序中使用的内容,它运行良好,希望它能帮助你。。。。。。。

                if (TxtPath.Text != string.Empty)
                 {
                  StreamReader srr = new StreamReader(TxtPath.Text);
                    try
                    {
                        ss = srr.ReadToEnd().Split(''n');
                        MessageBox.Show("File Successfully Loded in Memory 'n" + TxtPath.Text, "System Manager", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (Exception)
                    {
                        throw new Exception("File are not readable or write protacted");
                    }
                    LblLineCount.Text = ss.Count().ToString();
                }
                else
                {
                    MessageBox.Show("Please Browse any Log File 1st", "System Manager", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }

你也可以修剪.Split(''n')要在一行中获取所有数据,我现在不能尝试,但如果检查它,它会让你摆脱困境。。。。。。。。。。。

u应该在循环后清空变量,而不是在循环内

public void ConsoleEnter_KeyDown(object sender, KeyEventArgs e)
    {
        string line;
        if (e.KeyCode == Keys.Enter)
        {
            // Read the file and display it line by line.
            StreamReader file = new StreamReader("C:''Users''Home''Desktop''commands.txt");
            while ((line = file.ReadLine()) != null)
            {
                if (line.Contains(ConsoleEnter.Text))
                {
                    COMBOX.Items.Add(ConsoleEnter.Text);
                }
                else
                {
                    COMBOX.Items.Add("Invalid Command");
                }
            }
            COMBOX.Items.Remove("");
            ConsoleEnter.Text = "";
        }
    }
public void ConsoleEnter_KeyDown(object sender, KeyEventArgs e)
 {
    string line;
    string path = @"C:''Users''Home''Desktop''commands.txt";
     WebClient client = new WebClient();
     System.IO.Stream stream = client.OpenRead(path);
     System.IO.StreamReader str = new StreamReader(stream);
         string Text=str.ReadToEnd();    
         string[] words = Text.Split(':');   

      if (e.KeyCode == Keys.Enter)
       {
       for(int i=1;i<words.Length;i++)
            {  
               if (string.compare(words[i],textBox1.text)==0)
              {
                COMBOX.Items.Add(ConsoleEnter.Text);
                COMBOX.Items.Remove("");
                ConsoleEnter.Text = "";
               }
            else
             {
                COMBOX.Items.Add("Invalid Command");
                COMBOX.Items.Remove("");
                ConsoleEnter.Text = "";
             }
        }
    }
}

试试这个。。使用System.Net使用命名空间;