C# 保存和更新存储在文本文件中的列表
我正在使用一个存储对象列表的文本文件,并尝试创建一个按钮,该按钮将根据用户在表单中输入的内容更新文本文件中的项目。当前代码的问题是它覆盖了整个文件,并且只显示列表中的一项 下面是我当前保存到文本的代码,谢谢你的帮助C# 保存和更新存储在文本文件中的列表,c#,C#,我正在使用一个存储对象列表的文本文件,并尝试创建一个按钮,该按钮将根据用户在表单中输入的内容更新文本文件中的项目。当前代码的问题是它覆盖了整个文件,并且只显示列表中的一项 下面是我当前保存到文本的代码,谢谢你的帮助 private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) { // Save everything in a dialog box saveFileDialog
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
// Save everything in a dialog box
saveFileDialog1.ShowDialog();
// Open the file and save the information
Stream textOut = saveFileDialog1.OpenFile();
StreamWriter writer = new StreamWriter(textOut);
FormToObject();
string str = c.GetToString();
writer.WriteLine(str);
writer.Close();
}
private void FormToObject()
{
c.Brand = txtBrand.Text;
c.Model = txtModel.Text;
c.Year = txtYear.Text;
c.Price = txtPrice.Text;
c.NumMiles = txtNumMiles.Text;
BodyCheck();
GearCheck();
}
您可以在应用程序初始化后加载文件并存储对象列表,例如在app.xaml.cs文件中。创建一个save方法,该方法操作内存中的对象列表,同时将集合持久化为文件。这样,集合的每个版本都会被新集合覆盖 您可以在应用程序初始化后加载文件并存储对象列表,例如在app.xaml.cs文件中。创建一个save方法,该方法操作内存中的对象列表,同时将集合持久化为文件。这样,集合的每个版本都会被新集合覆盖
文本文件
是包含顺序数据的文件。您不能跳转到特定记录并进行更新,您必须创建新文件(或缓冲区)(1)保存数据直到您要更新的记录(2)更新记录,以及(3)继续文件的其余部分
看起来,在您的例子中,您正在查找包含记录的二进制文件
,并且每次都可以更新特定的记录
您可以阅读C#中的二进制文件。
文本文件
是包含顺序数据的文件。您不能跳转到特定记录并进行更新,您必须创建新文件(或缓冲区)(1)保存数据直到您要更新的记录(2)更新记录,以及(3)继续文件的其余部分
看起来,在您的例子中,您正在查找包含记录的二进制文件
,并且每次都可以更新特定的记录
您可以阅读C#中的二进制文件。首先,您要将文件中的所有内容保存到列表中。之后,你想从文本框中读取所有内容,并最终将所有内容写入文本文件,对吗 下面是一些用于此的伪代码:
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
// Save everything in a dialog box
saveFileDialog1.ShowDialog();
// Open the file and save the information
Stream textOut = saveFileDialog1.OpenFile();
list<string> textfile = texout.ReadLines();
foreach(item i in itemlist)
{
texfile.Add(i);
}
StreamWriter writer = new StreamWriter(textOut);
foreach(string str in texfile)
{
writer.WriteLine(str);
}
writer.Close();
}
private void saveAstolStripMenuItem\u单击(对象发送方,事件参数e)
{
//在对话框中保存所有内容
saveFileDialog1.ShowDialog();
//打开文件并保存信息
Stream textOut=saveFileDialog1.OpenFile();
list textfile=texout.ReadLines();
foreach(项目列表中的项目i)
{
添加(i);
}
StreamWriter writer=新的StreamWriter(文本输出);
foreach(texfile中的字符串str)
{
作者:WriteLine(str);
}
writer.Close();
}
首先要将文件中的所有内容保存到列表中。之后,你想从文本框中读取所有内容,并最终将所有内容写入文本文件,对吗
下面是一些用于此的伪代码:
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
// Save everything in a dialog box
saveFileDialog1.ShowDialog();
// Open the file and save the information
Stream textOut = saveFileDialog1.OpenFile();
list<string> textfile = texout.ReadLines();
foreach(item i in itemlist)
{
texfile.Add(i);
}
StreamWriter writer = new StreamWriter(textOut);
foreach(string str in texfile)
{
writer.WriteLine(str);
}
writer.Close();
}
private void saveAstolStripMenuItem\u单击(对象发送方,事件参数e)
{
//在对话框中保存所有内容
saveFileDialog1.ShowDialog();
//打开文件并保存信息
Stream textOut=saveFileDialog1.OpenFile();
list textfile=texout.ReadLines();
foreach(项目列表中的项目i)
{
添加(i);
}
StreamWriter writer=新的StreamWriter(文本输出);
foreach(texfile中的字符串str)
{
作者:WriteLine(str);
}
writer.Close();
}