Hier einmal mein Ansatz:
Code: Alles auswählen
EnableExplicit
Procedure.s RandomReadableString()
Dim WordPattern.s(3)
Dim Consonants.s(20)
Dim Vocals.s(4)
Dim SpecialChars.s(7)
Dim Combinations.s(12)
WordPattern(0) = "cvccvcsdddd"
WordPattern(1) = "xvvcvcvddds"
WordPattern(2) = "xvxvvcvcsdds"
WordPattern(3) = "vcvvxvdcvcvsd"
Consonants(0) = "B"
Consonants(1) = "C"
Consonants(2) = "D"
Consonants(3) = "F"
Consonants(4) = "G"
Consonants(5) = "H"
Consonants(6) = "J"
Consonants(7) = "K"
Consonants(8) = "L"
Consonants(9) = "M"
Consonants(10) = "N"
Consonants(11) = "P"
Consonants(12) = "Q"
Consonants(13) = "R"
Consonants(14) = "S"
Consonants(15) = "T"
Consonants(16) = "V"
Consonants(17) = "W"
Consonants(18) = "X"
Consonants(19) = "Y"
Consonants(20) = "Z"
Vocals(0) = "A"
Vocals(1) = "E"
Vocals(2) = "I"
Vocals(3) = "O"
Vocals(4) = "U"
SpecialChars(0) = "#"
SpecialChars(1) = "."
SpecialChars(2) = ":"
SpecialChars(3) = "-"
SpecialChars(4) = "_"
SpecialChars(5) = "+"
SpecialChars(6) = "?"
SpecialChars(7) = "!"
Combinations(0) = "st"
Combinations(1) = "sp"
Combinations(2) = "pl"
Combinations(3) = "sch"
Combinations(4) = "ch"
Combinations(5) = "ll"
Combinations(6) = "ss"
Combinations(7) = "tt"
Combinations(8) = "nn"
Combinations(9) = "mm"
Combinations(10) = "ck"
Combinations(11) = "schl"
Combinations(12) = "kr"
Define PatternCount.i = ArraySize(WordPattern())
Define ConsonantsCount.i = ArraySize(Consonants())
Define VocalsCount.i = ArraySize(Vocals())
Define SpecialCharsCount.i = ArraySize(SpecialChars())
Define CombinationsCount.i = ArraySize(Combinations())
Define Patternstring.s = WordPattern(Random(PatternCount,0))
Define CurrentChar.s
Define x.i
Define GeneratedString.s = ""
For x = 0 To Len(Patternstring)
CurrentChar = Mid(Patternstring,x+1,1)
Select CurrentChar
Case "v"
GeneratedString = GeneratedString + LCase(Vocals(Random(VocalsCount,0)))
Case "c"
GeneratedString = GeneratedString + LCase(Consonants(Random(VocalsCount,0)))
Case "s"
GeneratedString = GeneratedString + LCase(SpecialChars(Random(SpecialCharsCount,0)))
Case "x"
GeneratedString = GeneratedString + LCase(Combinations(Random(CombinationsCount,0)))
Case "d"
GeneratedString = GeneratedString + Str(Random(9,0))
Default
Break
EndSelect
Next
ProcedureReturn GeneratedString
EndProcedure
OpenConsole()
PrintN(RandomReadableString())
Input()Hat da vielleicht noch wer eine Anregung, bevor ich weitermache oder wäre ein komplett anderer Ansatz besser?