我如何阅读我的" .txt"?

时间:2017-03-27 18:24:32

标签: c#

我是一个大新手,所以我需要你的帮助!

我如何阅读我的" .txt"? 为什么查询在游戏中不起作用?或者与之比较 (密码= .txt)文件?

[Command("log")]
public void login3(Client player, string passwort)
{
    var sender = API.getPlayerName(player);

    var reader = new StreamReader(File.OpenRead(player + ".txt"));
    {
        using (StreamReader leser = new StreamReader(player + ".txt"))
        if ((passwort = leser.ReadLine()) != null)
        {
            API.sendChatMessageToPlayer(player, "Erfolgreich eingeloggt!");
        }
        else
        {
            API.sendChatMessageToPlayer(player, "Passwort falsch!");
        }
    }
}

2 个答案:

答案 0 :(得分:0)

评论已经指出了你的主要问题。您正在分配passwort,而不是比较它,因为您使用的是单=运算符。要进行比较,请使用==

此外,您有一个未使用的StreamReader,并且您使用的那个没有正确处理。

最后,在修复double ==之后,不能进行空检查,因为true和false都不为null。检查行内容是否等于密码。

试试这个:

[Command("log")]
public void login3(Client player, string passwort)
{
    var sender = API.getPlayerName(player);

    using (var reader = new StreamReader(File.OpenRead(sender + ".txt")))
    {
        // use double ==
        // check if line contents equal to password, not null, because false is not null too
        if (passwort == reader.ReadLine())
        {
            API.sendChatMessageToPlayer(player, "Erfolgreich eingeloggt!");
        }
        else
        {
            API.sendChatMessageToPlayer(player, "Passwort falsch!");
        }
    }
}

答案 1 :(得分:0)

我建议File.ReadLines Linq 而不是StreamReader

[Command("log")]
public void login3(Client player, string passwort)
{
    //DONE: validate public method's arguments
    if (null == player) 
      throw new ArgumentNullException("player");
    else if (String.IsNullOrEmpty(password)) 
      return; // Player doesn't have a password

    // Read the first line of the file and compare it with the password 
    if (File
          .ReadLines(player + ".txt") //TODO: implement as a property: player.FileName
          .Take(1)
          .Any(line => line == passwort)) 
      API.sendChatMessageToPlayer(player, "Erfolgreich eingeloggt!");
    else
      API.sendChatMessageToPlayer(player, "Passwort falsch!");
}