代码之家  ›  专栏  ›  技术社区  ›  user770022

搜索已创建的文件

c#
  •  0
  • user770022  · 技术社区  · 15 年前

    当我创建文件并将其余信息附加到文件中时,我现在希望能够读取文本文件,然后显示文件中列出的生日月份。 我想在生日前把信息输入。所以如果我选择第11个月,我想通过按按钮4来输入出生月份为11的所有数据条目。

    这就是我目前为止所拥有的;

     private void close_Click(object sender, EventArgs e)
        {
            Close();
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            writetext();
            reset();
    
        }
        public void writetext()
        {
    
            using (TextWriter writer = File.AppendText("filename.txt"))
    
            {
             writer.WriteLine("First name, {0} Lastname, {1} Phone,{2} Day of birth,{3} Month of Birth{4}", textBox1.Text, textBox2.Text, maskedTextBox1.Text, textBox4.Text, textBox3.Text);
             MessageBox.Show(String.Format("First Name,{0} Lastname, {1} Phone,{2} Day of birth,{3} Month of Birth{4}", textBox1.Text, textBox2.Text, maskedTextBox1.Text, textBox4.Text, textBox3.Text)); 
            }
            }
        public void reset()
        {
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
            textBox4.Text = "";
            maskedTextBox1.Text = "";
        }
    
        private void button3_Click(object sender, EventArgs e)
        {
            Close(); 
         }
    
        private void button2_Click(object sender, EventArgs e)
    
    
        {
            readfile(); 
    
    
        }
    
        private void label7_Click(object sender, EventArgs e)
        {
    
        }
    
        private void button4_Click(object sender, EventArgs e)
        {
    
        }
        public void readfile()
        {
            string[] lines = File.ReadAllLines("filename.txt");
            label6.Text = String.Join(Environment.NewLine, lines);
        }
    }
    
    
    
    
    
    
     }
    
    2 回复  |  直到 15 年前
        1
  •  0
  •   jdecuyper    15 年前

    与geoffrey相同,但使用c和linq语法:

    您可以使用出生日期筛选文件的内容,并以这种方式将其存储在新数组中:

    string[] persons = File.ReadAllLines(Server.MapPath("filename.txt"));
    IEnumerable<string> personsWithBirthday =
      from p in persons
        where p.Contains("1980-08-21")
          select p;
    foreach (var person in personsWithBirthday)
     Response.Write(person);
    

    我建议您定义一个标准的日期格式,以便轻松地抓取所有符合搜索条件的人。

        2
  •  0
  •   Geoffrey    15 年前

    请原谅我在这里使用了vb.net语法,因为我对它比较熟悉。不过,翻译应该非常简单:

    Dim rdr As New IO.StreamReader("filename.txt")
    While rdr.Peek <> -1
       Dim strLine as String = rdr.ReadLine()
       If strLine.Contains("Birth Month,11") Then
          Label6.Text &= strLine
       End If
    End While
    rdr.Close()
    

    希望有帮助。