如何检查词典单词是否是vb中用户输入的一部分?

时间:2015-06-24 11:01:03

标签: vb.net dictionary

我为学校项目编写了密码分析器。我希望它能够测试他们的密码是否包含任何地方的字典单词。例如,kdghd cheese gjgjd仍然会被标记,因为它包含 cheese 。我是否需要找到包含所有字典单词列表的文件,或者它们是否是这样的内置函数?

感谢。

3 个答案:

答案 0 :(得分:0)

大多数语言都没有内置任何(人类语言)词典。您需要找到/制作自己的程序并从该文件中读取程序。

个人提示是为了测试目的(例如5个单词)制作你自己的短篇小说,以确保程序正确读取和解释文件。

答案 1 :(得分:0)

如@Jonas Olsson所述,VB中没有内置字典。您需要自己创建它们。并且使它变得相当容易,但我会更容易地解决您的问题。首先制作一个文本文件,其中包含您希望程序检查是否包含该单词的所有单词。然后将它保存在其他地方,为了我的例子,我将创建一个包含单词" cheese"的文本文件。所以:

Dim myFile As String = "D:\test.txt" //Location of my txt file

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim item() As String = File.ReadAllLines(myFile) //Reads whatever your txt file contains

    //compares every line in your to text file to the password field
    For Each line As String In item 
        If txtPassword.Text.Contains(line) Then
            MessageBox.Show("Invalid password!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    Next
End Sub

希望有所帮助!或至少它给了你一个想法:))

答案 2 :(得分:0)

你必须在某个地方找到自己的字典。我过去曾使用The Gutenberg Webster's Unabridged Dictionary,因为它是公共领域。但是,它是一种非常原始的形式,你可能不得不对它进行大量处理,以使其形状对你有用。

可能有其他公共领域或"开源"你可以使用的单词列表。我建议谷歌搜索"公共领域英语单词列表"或者"免费英语单词列表"或类似的搜索。然后,只需读取文件并对其进行处理即可。