Aus Chars alle möglichen Wörter mit bestimmter Länge schreiben

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von eRBISoftwareDE.

    Aus Chars alle möglichen Wörter mit bestimmter Länge schreiben

    Hey Leute,
    Das is mein erster Post :)


    Ich will aus mehreren (vorgegeben) Zeichen alle "Wörter" die man mit ihnen machen kann in eine Datei schreiben.
    Ich will mit zwei NumericUpDown die maximale und minimale Länge der Wörter bestimmen.

    Ich hab 4 RadioButtons mit denen ich die verschiedenen Zeichen auswählen kann.


    Jetzt frag ich mich wie ich aus den Zeichen alle möglichen Wörter machen kann die gehen. ?(

    Falls ich das ein bisschen ungenau erklärt hab tuts mit leid.. :D


    MfG
    Meiner Meinung gibt es 2 Möglichkeiten.

    1. Du brauchst eine "Diktionary"-Datei in der sich alle möglichen Wörter befinden (Copy-Paste aus dem Duden oder so :) ) mit der dann die möglichen Kombinationen abgeglichen werden können

    2. Du lässt dir alle möglichen Kombinationen der Buchstaben anzeigen (Liste) und musst dann manuell filter was ein Wort ist und was nicht.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    ok ich hab mich falsch ausgedrückt...

    Ich will alle Zeichenfolgen aus den Ausgewählten Zeichen machen und dann alle zeichenfolgen in eine Datei speichern.
    Also ich will meine Dictionary Datei automatisch selber machen.
    ja das ist schon näher,..
    ich will dass wenn ich a, b, c, d hab dass dann


    a
    b
    c
    d
    aa
    ab
    ac
    ad
    ba
    bb
    bc
    bd
    ...


    raus kommt


    und das problem ist dass ich for schleifen leider nicht wirklich blick... kp warum
    und ich will die maximale Länge bestimmen können

    r2po schrieb:

    eine for schleife ist einfach
    Kann es sein, dass Du das Problem nicht verstanden hast?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim f As New System.IO.FileStream("C:\Users\AES\Desktop\text.txt", IO.FileMode.Create)
    3. Dim fs As New System.IO.StreamWriter(f)
    4. blub("abc", 4, 6, fs)
    5. fs.Close()
    6. f.Close()
    7. End Sub
    8. Public Sub blub(ByVal charset As String, min As Integer, max As Integer, streamWriter As System.IO.StreamWriter)
    9. Dim ar(max) As Integer
    10. For i As Integer = 0 To max - 1
    11. ar(i) = -1
    12. Next
    13. For i As Integer = 1 To min - 1
    14. ar(i) = 0
    15. Next
    16. While (True)
    17. For j = 0 To max - 1
    18. ar(j) += 1
    19. If (j = max - 1 AndAlso ar(j) >= charset.Length) Then
    20. Exit While
    21. End If
    22. If Not (ar(j) >= charset.Length) Then
    23. Exit For
    24. End If
    25. ar(j) = 0
    26. Next
    27. For k = max - 1 To 0 Step -1
    28. If Not (ar(k) = -1) Then
    29. streamWriter.Write(charset(ar(k)))
    30. End If
    31. Next
    32. streamWriter.Write(Environment.NewLine)
    33. End While
    34. End Sub

    Bluespide schrieb:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim f As New System.IO.FileStream("C:\Users\AES\Desktop\text.txt", IO.FileMode.Create)
    3. Dim fs As New System.IO.StreamWriter(f)
    4. blub("abc", 4, 6, fs)
    5. fs.Close()
    6. f.Close()
    7. End Sub
    8. Public Sub blub(ByVal charset As String, min As Integer, max As Integer, streamWriter As System.IO.StreamWriter)
    9. Dim ar(max) As Integer
    10. For i As Integer = 0 To max - 1
    11. ar(i) = -1
    12. Next
    13. For i As Integer = 1 To min - 1
    14. ar(i) = 0
    15. Next
    16. While (True)
    17. For j = 0 To max - 1
    18. ar(j) += 1
    19. If (j = max - 1 AndAlso ar(j) >= charset.Length) Then
    20. Exit While
    21. End If
    22. If Not (ar(j) >= charset.Length) Then
    23. Exit For
    24. End If
    25. ar(j) = 0
    26. Next
    27. For k = max - 1 To 0 Step -1
    28. If Not (ar(k) = -1) Then
    29. streamWriter.Write(charset(ar(k)))
    30. End If
    31. Next
    32. streamWriter.Write(Environment.NewLine)
    33. End While
    34. End Sub
    Vielen Dank :)