C# 如果文本文件中存在字符串,则<;条件>;在C中#
我需要检查文本文件中是否存在该字符串,然后继续。如果不存在,它将显示一个C# 如果文本文件中存在字符串,则<;条件>;在C中#,c#,winforms,C#,Winforms,我需要检查文本文件中是否存在该字符串,然后继续。如果不存在,它将显示一个消息框,说明该ID不存在 在我的示例中,我尝试检查“testfile.txt”是否包含用户在TextBox1中输入的字符串,然后将包含该字符串的行复制到新的文本文件中。使用建议的方法,这里是我到目前为止的一个片段: string emp_profile = @"EmployeeData.txt"; //file to be checked string endata = @"EndData.txt"; //terminate
消息框
,说明该ID不存在
在我的示例中,我尝试检查“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);
}
我在这里试图做的是将不包含txt\un.Text
的“emp\u profile.txt”中的数据复制到“end\u数据”中“
并将包含输入的行复制到另一个文件end_tdata.txt
,删除旧数据文件以清除内容,然后将数据合并到与旧数据具有相同路径文件的新数据中。之后,临时数据文件将被删除
我试着将上面的代码段包含在这个文件中,但它没有按照我希望的方式工作
string[] dataline = File.ReadAllLines(emp_profile);
for (int i = 0; i < dataline.Length; i++)
{
if (dataline[i].Contains(txt_un.Text))
{
//code snippet here
}
else
MessageBox.Show("ID does not exist!");
}
string[]dataline=File.ReadAllLines(emp\U配置文件);
for(int i=0;i
任何帮助都将不胜感激!提前谢谢你 您正在关闭第一个循环中的流。如果您尝试编写多个,则应该得到一个异常line@Steve我移动了w.Close()代码>在foreach循环之后。但是当我运行程序时,即使ID不存在,它仍然会得到一个消息框:数据已被记录
,对话框一直弹出,直到我按下OK按钮几次times@Steve如果ID确实存在,我得到messagebox:id not found
然后数据已被记录
在我单击OK之后,第一个对话框再次弹出,您正在关闭第一个循环中的流。如果您尝试编写多个,则应该得到一个异常line@Steve我移动了w.Close()代码>在foreach循环之后。但是当我运行程序时,即使ID不存在,它仍然会得到一个消息框:数据已被记录
,对话框一直弹出,直到我按下OK按钮几次times@Steve如果ID确实存在,我得到messagebox:id not found
然后数据已经被记录
在我点击OK之后,第一个对话框再次弹出