如果字符串存在于文本文件中,那么C#中的<condition>

时间:2017-10-07 08:41:12

标签: c# winforms

我需要检查字符串是否存在于文本文件中,如果存在,则继续。如果没有,它将显示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

任何帮助将不胜感激!提前谢谢!

0 个答案:

没有答案