从文本文件

时间:2016-10-07 23:09:14

标签: c# text-files bots

我目前正在尝试构建一个主持人 - 机器人,它会自动扫描聊天中的被禁词,然后在说出来时将人们排除在外。

目前我在字符串列表中有这些被禁止的单词,但我希望机器人实际上从.txt文件中取出单词,这样我就可以轻松地获得更大的单词列表而无需编写大部分代码只包含坏词。

目前,执行此操作的我的(部分)代码如下所示:

List<string> BannedWords = new List<string> { "dog", "kitten", "bird" };

private bool BannedWordFilter(string username, string message)
{
    foreach(string word in BannedWords)
    {
        if (message.Contains(word))
        {
            string command = "/timeout " + username + " 10";
            irc.sendChatMessage(command);
            irc.sendChatMessage(username + "no banned words allowed!");
            return true;
        }
    }
    return false;
}

所以现在,机器人超时人们说我提出的测试。 但我不确定如何构建它以便机器人从.txt文件中取出单词。

2 个答案:

答案 0 :(得分:4)

如果您的文字每行有一个禁止字词,例如像这样:

dog
kitten
bird

...然后你可以用

来阅读它
BannedWords = System.IO.File.ReadAllLines("bannedWords.txt")`;

返回一个字符串数组,每个字符串都包含一行文本文件。有关详细信息,请参阅here

顺便说一句:如果你有很多被禁止的单词,那么最好将其放入查找中,因为这会使查找更快,例如:

// read banned words
private ILookup<string, string> BannedWords;
// ...
BannedWords = File.ReadAllLines("bannedWords.txt").ToLookup(w => w);

// check message for banned words
if (message.Split(' ').Any(w => bannedWords.Contains(w)) 
{
    // message contains a banned word
}

答案 1 :(得分:2)

这应该这样做:

class proxy
{
public:
    operator double() const { return data[index]; }

    // ...
};