Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 替换txt文件中的某个单词_C# - Fatal编程技术网

C# 替换txt文件中的某个单词

C# 替换txt文件中的某个单词,c#,C#,按照要求,我们将用户、密码和个人资料图片存储在.txt文件中。用户可以重定向到配置文件修改页面,在那里他们可以更改密码和/或密码图片 当用户单击“确定”时,我需要替换.txt文件中的密码和/或配置文件图片名称 users.txt文件的布局如下所示: mike mike Avatar1 jessica123 123jessica Avatar4 mohd MoHd Avatar3 xiao AxiaoA Avatar2 anna abcANNAabc Avatar1 在做了一些研究之后,我尝试使

按照要求,我们将用户、密码和个人资料图片存储在.txt文件中。用户可以重定向到配置文件修改页面,在那里他们可以更改密码和/或密码图片

当用户单击“确定”时,我需要替换.txt文件中的密码和/或配置文件图片名称

users.txt文件的布局如下所示:

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文件的并发访问?如果两个用户的密码相同怎么办?如果用户将密码更改为单个空间,然后再次更改,该怎么办?用户可以使用带有换行符的密码创建新用户。就像其他人一样使用数据库。这会失败的,我知道