使用.replace替换文本文档中的单词(c#)

时间:2013-06-02 10:56:28

标签: c# asp.net replace

目前有以下代码:

    string[] fileLineString = File.ReadAllLines(Server.MapPath("~") + "/App_Data/Users.txt");

    for (int i = 0; i < fileLineString.Length; i++)
    {
        string[] userPasswordPair = fileLineString[i].Split(' ');

        if (Session["user"].ToString() == userPasswordPair[0])
        {
            userPasswordPair[i].Replace(userPasswordPair[1], newPasswordTextBox.Text);
        }
    }
}

文本文件的设置为:'username''password

我正在尝试做的是能够编辑密码并使用我的代码将其替换为新密码,但我的代码似乎什么都不做,文本文件保持不变。

3 个答案:

答案 0 :(得分:4)

string[] fileLineString = File.ReadAllLines(Server.MapPath("~") + "/App_Data/Users.txt");

for (int i = 0; i < fileLineString.Length; i++)
{
    string[] userPasswordPair = fileLineString[i].Split(' ');

    if (Session["user"].ToString() == userPasswordPair[0])
    {
        // set the new password in the same list and save the file
        fileLineString[i] = Session["user"].ToString() + " " + newPasswordTextBox.Text;
        File.WriteAllLines((Server.MapPath("~") + "/App_Data/Users.txt"), fileLineString);
        break; // exit from the for loop
    }
}

答案 1 :(得分:1)

  1. 目前,您没有存储该文件。
  2. 您的替换未分配给变量(替换不编辑或写入任何内容,它只返回新的字符串对象)。
  3. 更正后的代码:

    string[] fileLineString = File.ReadAllLines(Server.MapPath("~") + "/App_Data/Users.txt");
    
    for (int i = 0; i < fileLineString.Length; i++)
    {
        string[] userPasswordPair = fileLineString[i].Split(' ');
    
        if (Session["user"].ToString() == userPasswordPair[0])
        {
            fileLineString[i] = fileLineString[i].Replace(userPasswordPair[1], newPasswordTextBox.Text);
            break;
        }
    }
    
    File.WriteAllLines((Server.MapPath("~") + "/App_Data/Users.txt", fileLineString);
    

答案 2 :(得分:0)

        String _userName = "User";
        String _newPassword = "Password";
        // Reading All line from file
        String _fileContent = System.IO.File.ReadAllLines("filePath").ToString();
        // Pattern which user password like to changed            
        string _regPettern = String.Format(@"{0} ?(?<pwd>\w+)[\s\S]*?", _userName);
        Regex _regex2 = new Regex(_regPettern, RegexOptions.IgnoreCase);
        String _outPut = Regex.Replace(_fileContent, _regPettern, m => m.Groups[1] + " " + _newPassword);
        // Writing to file file
        System.IO.File.WriteAllText("filePath", _outPut);