【发布时间】:2014-08-27 15:07:01
【问题描述】:
我正在制作一个程序,该程序将我添加到列表框中的人员的姓名编入目录,并在您关闭程序时将所有内容保存到文件中。
文件的每一行都是针对一个人的:
Tommy
Marco
James
Dylan
程序启动时,加载文件数据并将名称添加到列表框。
所有这一切都很好,但现在我在制作其他东西时遇到了麻烦。
列表中的每个人都需要一个变量来表明它是否已付款,我想将此变量与他的姓名一起保存在文件中。
为此,我有:
bool paid;
private void checkbox_Paid_CheckedChanged(object sender, EventArgs e)
{
paid = true;
}
我只有一个复选框,它需要与列表框中的每个人不同,根据事件中的选择:
private void listDOF_SelectedIndexChanged(object sender, EventArgs e)
{
}
但是我不知道如何在文件中为每个人写这个bool,与名称一起保存到文件中并加载它。
我试过类似的东西:
foreach(string purchasers in listDOF.Items)
{
arq.WriteLine(purchases, paid);
}
显然这不起作用,我不知道如何为每个购买者分配布尔值并将其写入文件中。
我在 WFA 中使用 .NET 4.5。
在此先谢谢大家,如果我能做到这一点,我将朝着知识迈出一大步。
【问题讨论】:
-
有很多关于如何实现这一点的选项。最后,您需要建立一个字符串来反映您要写入文件的行。试试
arq.WriteLine("{0} {1}", purchases, paid);for example。 -
使用 Person 类填充列表框,然后将人员保存到 xml 文件是我的建议(查找序列化)
-
首先您需要决定要使用哪种文件格式。我想在你的情况下我会选择 csv。然后一行一行地写:Tommy,true 等等。当您阅读该行时,只需用分隔符 (,) 将其拆分,然后分析第二个字符串是真还是假。
-
@Christian.K 这似乎是正确的方法,它在文件中写入名称和变量,但是当加载到列表框时,加载像“Tommy False”,如果我选中复选框,然后在下一次加载“Tommy False True”。我需要为每个人分配,不要被程序识别为字符串。