当我创建文件并向其附加其他信息时,我现在希望能够读取文本文件,然后显示文件中列出的生日月份。 我希望能够在生日那天获取信息。因此,如果我选择第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);
}
}
}
答案 0 :(得分:0)
请原谅我在这里使用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()
希望有所帮助。
答案 1 :(得分:0)
与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);
我建议您定义标准日期格式,以便轻松获取符合搜索条件的所有人员。