【问题标题】:VB.NET Settings (Import)VB.NET 设置(导入)
【发布时间】:2012-04-27 01:11:37
【问题描述】:

我希望它执行以下操作:当他们单击导入按钮时,打开多个文件(完成)然后将它们保存为设置。然后在表单加载时,打开这些文件,这样我就不必重新导入它们了!

我试过了

For Each wl As String In File.ReadAllLines("settings.txt")
        OpenFileDialog1.FileName = (wl)
    Next

在表单加载和 settings.txt 中包含 2 个文件名和位置。它只打开第二个文件而不是第一个文件。如何让它打开该设置文件中的所有文件?我还绑定了 ReadLines

【问题讨论】:

  • 你……嗯……即使接近这种方式也做不到。您打开文件的方法在哪里?在循环中调用它。
  • 哈哈。 OpenFileDialog1.FileName = (wl) 现在我发现问题是导入文件列表中第一个文件之后的任何内容都不起作用。只有第一个文件有效
  • 不,这不是您打开文件的方法。这将设置您的 文件对话框 的文件名。实际读取文件的代码是什么?
  • 暂时忽略,OpenFileDialog1.FileName = (wl) 现在我发现问题是导入文件列表中第一个文件之后的任何内容都不起作用。只有第一个文件有效.. 它在那里,File.ReadAllLines 读取设置文件。
  • 不,这不是“暂时忽略”。设置OpenFileDialog1.FileName 不加载您的文件,这是您想要做的,对吗?它将在循环的每次迭代中被覆盖,并且还有其他问题。还是您想完全做其他事情?

标签: vb.net


【解决方案1】:

将你的哈希破解方法抽象出来可能是最简单的:

Function hashType(ByVal filename As String) As Boolean
    If algo.Text = "MD5" Then
        Dim firstWord = (From word In IO.File.ReadLines(filename)
         Where String.Equals(MD5(word), hash.Text)).FirstOrDefault()
        If firstWord IsNot Nothing Then
            Label2.Text = firstWord
            Return True
        Else
            Label2.Text = "Hash Could Not Be Cracked"
        End If
    ElseIf algo.Text = "SHA1" Then
        Dim firstWord = (From word In IO.File.ReadLines(filename)
         Where String.Equals(SHA1(word), hash.Text)).FirstOrDefault()
        If firstWord IsNot Nothing Then
            Label2.Text = firstWord
            Return True
        Else
            Label2.Text = "Hash Could Not Be Cracked"
        End If
    End If

    Return False
End Function

Private Sub Thief3Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Thief3Button1.Click
    OpenFileDialog1.Filter = "Dictionaries (*.dic)|*.dic"
    OpenFileDialog1.FilterIndex = 1
    OpenFileDialog1.RestoreDirectory = True
    OpenFileDialog1.Multiselect = True
    OpenFileDialog1.ShowDialog()
End Sub

Private Sub Thief3TopButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Thief3TopButton1.Click
    Me.Close()
End Sub

Private Sub Thief3Button3_Click_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Thief3Button2.Click
    hashType(OpenFileDialog1.FileName)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    For Each wl As String In File.ReadLines("settings.txt")
        If hashType(wl) Then Exit For
    Next
End Sub

瞧。不过,我认为您可能希望在 Load 事件之外的其他地方执行此操作 - 首次创建表单时,hash.Text 中不会有任何内容。

【讨论】:

  • 这行不通,哈哈。我正在尝试制作密码专业程序。万事俱备,除了单词表错误
  • “这行不通,哈哈。” 如果你能给出它行不通的原因,那将非常有帮助。而不是“大声笑”:)
  • 因为我正在导入一个词表来测试输入的哈希值与导入的词表中每个单词的哈希值!
  • 再一次,实际的错误会有所帮助。 (事实上​​,在第一条评论中会很好......)
  • 找不到文件'C:\Users\Joe\Documents\Visual Studio 2010\Projects\HashCracker\HashCracker\bin\Debug\OpenFileDialog1'。
猜你喜欢
  • 2012-05-07
  • 1970-01-01
  • 2011-04-07
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 2012-01-14
相关资源
最近更新 更多