【发布时间】:2020-02-29 16:08:00
【问题描述】:
我创建了几个表单,它们都必须使用 csv 文件。 我可以注册不同的用户,然后登录个人资料(如果存在)。 我用 StreamWriter 添加信息:
using (StreamWriter writer = new StreamWriter(filePath, true))
{
writer.WriteLine(username + "," + password);
}
然后我阅读信息:
using (StreamReader reader = new StreamReader(filePath))
{
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
string[] userData = line.Split(',');
usernames.Add(userData[0]);
passwords.Add(userData[1]);
}
}
和
bool isFound = false;
for (int i = 0; i < usernames.Count; i++)
{
if (usernames[i] == username && passwords[i] == password)
{
isFound = true;
}
}
我想向该行添加其他信息,例如图片位置、金额、车库空间数量,但我从互联网上尝试的所有内容都将数据写入新行,而不是现有行。 我从我们的讲师那里得到了一些提示——先读取文件,然后写入文件,但它仍然不起作用。 每当我添加我使用的数据时
using(StreamWriter writer = new StreamWriter(filePath,true))
{
writer.Write("the username from the register from" + "," + "the password from the register form" + openFileDialog.FileName("the location of the file/What my lector told me to use"));
}
我只需要知道如何添加额外的数据,这样我就可以继续我的项目的其余部分。 如果这个问题已经得到解答,我很抱歉,感谢您的宝贵时间。
【问题讨论】:
-
你可以使用类对象和
List<class>集合吗?你知道如何覆盖[object].ToString()吗?您可以使用其他形式的序列化,还是被类似 CSV 的格式卡住?顺便说一句,当您写入文件时:writer.WriteLine(username + "," + password);,您可以添加更多字段并以相同方式写入一行。 -
我受限于 CSV 格式,我使用 List
,我什至将 opeFileDialog.FileName 添加到 List。我尝试了几种不同的方法,其中一个是上面,另一个我得到了一个增强超出范围异常。问题是他们向我解释的信息很少。 -
你知道,如果你想添加类似 amount of money 并且你使用逗号作为小数分隔符,你不能使用逗号作为字段来分割字符串分隔器?换句话说,您不能在任何地方使用逗号,除非您将字段括在引号或类似的分隔符中。因此,也许还要考虑您正在使用的分隔符。您可以使用另一个,例如管道
|。或者准备好解析引用的字段。 -
会的!感谢您的提醒。
-
每当我向“writer.WriteLine(username”、“password”、“)”添加更多内容时,我必须用“string[] userData = line.Split(”, ); 我的索引超出范围/界限。