C# 替换txt文件中的某个单词
按照要求,我们将用户、密码和个人资料图片存储在.txt文件中。用户可以重定向到配置文件修改页面,在那里他们可以更改密码和/或密码图片 当用户单击“确定”时,我需要替换.txt文件中的密码和/或配置文件图片名称 users.txt文件的布局如下所示:C# 替换txt文件中的某个单词,c#,C#,按照要求,我们将用户、密码和个人资料图片存储在.txt文件中。用户可以重定向到配置文件修改页面,在那里他们可以更改密码和/或密码图片 当用户单击“确定”时,我需要替换.txt文件中的密码和/或配置文件图片名称 users.txt文件的布局如下所示: mike mike Avatar1 jessica123 123jessica Avatar4 mohd MoHd Avatar3 xiao AxiaoA Avatar2 anna abcANNAabc Avatar1 在做了一些研究之后,我尝试使
mike mike Avatar1
jessica123 123jessica Avatar4
mohd MoHd Avatar3
xiao AxiaoA Avatar2
anna abcANNAabc Avatar1
在做了一些研究之后,我尝试使用:
userFilePath = userFilePath.Replace(Session["password"].ToString(),
passwordTextBox.Text);
原始密码通过会话变量存储在登录时,我使用该变量查找文件中的原始文本
但这不起作用。我对c#还很陌生。任何帮助都将不胜感激。请小心,您只需更改相关的行,许多用户可能拥有相同的密码,因此您必须逐行阅读文件,识别相关的登录名,当然不要替换任何内容,因为登录名或化身可能与密码具有相同的值,但是用新的信息重新创建行,然后用新的全文值保存文件
对于这些需求,建议您最好使用关系数据库。请注意,您只需更改相关的行,许多用户可能有相同的密码,因此您必须逐行读取文件,识别相关的登录名,当然不要替换任何内容,因为登录名或化身可能与密码具有相同的值,但使用新信息重新创建行,然后使用新的全文值保存文件
对于这样的需求,最好使用关系数据库。如果可能的话,你应该听取关于你问题的意见,不要这样做 如果出于某种原因,这是不可能的,那么这里是一个开始的地方。您希望在加载阶段将整个文件从文件系统加载到内存中,通常是在应用程序启动时或首先需要数据时 一旦数据位于内存中的某个结构中,您就可以像更改C#中的任何对象一样进行更改 一旦对内存进行了更改,就会将整个内容写回文件,覆盖旧文件 所以你的问题非常大,问题是如何从文件中读取数据?如何在内存中创建一个数据结构来保存这组特定的数据?如何将数据写回文件?我建议按照这个顺序一次做一个
哦,如果你没有数据库,但你可以更改文件格式,将其转换为XML或JSON,将其从文件转移到内存,再返回到文件的过程会容易得多。如果可能的话,你应该听取关于你问题的评论意见,不要这样做 如果出于某种原因,这是不可能的,那么这里是一个开始的地方。您希望在加载阶段将整个文件从文件系统加载到内存中,通常是在应用程序启动时或首先需要数据时 一旦数据位于内存中的某个结构中,您就可以像更改C#中的任何对象一样进行更改 一旦对内存进行了更改,就会将整个内容写回文件,覆盖旧文件 所以你的问题非常大,问题是如何从文件中读取数据?如何在内存中创建一个数据结构来保存这组特定的数据?如何将数据写回文件?我建议按照这个顺序一次做一个
哦,如果你没有数据库,但你可以更改文件格式,将其转换为XML或JSON,将其从文件转移到内存,再返回到文件的过程会容易得多。除了将信息存储在纯文本文件中和以明文保存密码(其他人已经提到这是个坏主意)之外,我认为最好不要在文件级直接修改字符串。最好将其抽象到对象(列表)中,然后修改对象并将其保存回磁盘。如果您仍然希望使用纯文本文件,则可以使用名为的库轻松完成此操作,而无需重新发明轮子
也要考虑的是,如果你坚持把它放在文本文件上,就是切换到一个更好的结构化文本文件,比如JSON或XML格式。您不再需要使用上述库,因为.NET已经为这两个库提供了反序列化程序。
除了将信息存储在纯文本文件中并以明文保存密码(其他人已经提到这是一个坏主意)之外,我认为最好避免在文件级别直接修改字符串。最好将其抽象到对象(列表)中,然后修改对象并将其保存回磁盘。如果您仍然希望使用纯文本文件,则可以使用名为的库轻松完成此操作,而无需重新发明轮子也要考虑的是,如果你坚持把它放在文本文件上,就是切换到一个更好的结构化文本文件,比如JSON或XML格式。您不再需要使用上述库,因为.NET已经为这两个库提供了反序列化程序。
如何控制对txt文件的并发访问?如果两个用户的密码相同怎么办?如果用户将密码更改为单个空间,然后再次更改,该怎么办?用户可以使用带有换行符的密码创建新用户。就像其他人一样使用数据库。这将失败。我知道这不能回答问题,但这是一个非常糟糕的主意。纯文本密码是不必要且危险的。预计有多少用户?文本文件可能效率低下。为什么不改用数据库呢?如何控制对txt文件的并发访问?如果两个用户的密码相同怎么办?如果用户将密码更改为单个空间,然后再次更改,该怎么办?用户可以使用带有换行符的密码创建新用户。就像其他人一样使用数据库。这会失败的,我知道