【问题标题】:How to check if a dictionary word is a part of a user input in vb?如何检查字典单词是否是vb中用户输入的一部分?
【发布时间】:2015-06-24 11:01:03
【问题描述】:

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

谢谢。

【问题讨论】:

标签: vb.net dictionary


【解决方案1】:

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

个人建议是制作一个非常短的用于测试目的(比如 5 个字),以查看程序是否正确读取和解释文件。

【讨论】:

    【解决方案2】:

    正如@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
    

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

    【讨论】:

      【解决方案3】:

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

      您可能在某个地方可以使用其他公共领域或“开源”词汇表。我建议谷歌搜索“公共领域英语单词列表”或“免费英语单词列表”或类似搜索。然后只需读取文件并对其进行处理即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-29
        • 1970-01-01
        • 2017-01-31
        相关资源
        最近更新 更多