我需要检查字符串是否存在于文本文件中,如果存在,则继续。如果没有,它将显示MessageBox
表示该ID不存在。
在我的previous question中,我尝试检查"testfile.txt"
是否包含用户在TextBox1
中输入的字符串,然后将包含该字符串的行复制到新的文本文件中。使用已建议的方法,这是我到目前为止的一小部分:
string emp_profile = @"EmployeeData.txt"; //file to be checked
string endata = @"EndData.txt"; //terminated employees data file
string end_tdata = @"end_tdata.txt"; //holds sample's data
//validates if eid exists and if it exists copies data of sample
//plus txt_end.Text into temporary data file
string[] dataline = File.ReadAllLines(emp_profile);
using (StreamWriter w = File.AppendText(end_tdata))
{
foreach (var line in dataline)
{
if (line.Contains(txt_un.Text))
{
w.WriteLine(txt_end.Text + "," + line);
w.Close();
}
}
}
string end_holddata = @"end_holddata.txt";
//read original file
string[] raw_data = File.ReadAllLines(endata);
using (StreamWriter r = File.AppendText(end_holddata))
{
foreach (var line in raw_data)
{
if (!line.Contains(txt_un.Text))
r.WriteLine(line);
}
r.Close();
}
//delete original file
File.Delete(endata);
//creates new data file with old data path
//and copies the temporary data held testdata
using (Stream input = File.OpenRead(end_holddata))
using (Stream output = new FileStream(endata, FileMode.Append,
FileAccess.Write, FileShare.None))
{
input.CopyTo(output);
}
//appends new data of sample into the newly created data file
using (Stream input = File.OpenRead(end_tdata))
using (Stream output = new FileStream(endata, FileMode.Append,
FileAccess.Write, FileShare.None))
{
input.CopyTo(output);
}
DialogResult result = MessageBox.Show("Data has been recorded.");
//clears all temporary files
if (result == DialogResult.OK)
{
File.Delete(end_holddata);
File.Delete(end_tdata);
}
我在这里要做的是,我将数据从不包含"emp_profile.txt
的{{1}}复制到txt_un.Text
并复制包含输入的行在不同的文件"end_holddata"
中,删除旧的数据文件以清除内容,然后将数据合并到具有与旧文件相同的路径文件的新数据中。之后,临时数据文件将被删除。
我尝试将上面的代码片段包含在内,但它不按我想要的方式工作。
end_tdata.txt
任何帮助将不胜感激!提前谢谢!