Ga naar inhoud

[VB 6.0] Word generator


anoniem

Aanbevolen berichten

Hallo allemaal, Graag zou ik een functie willen hebben die voor mij alle mogelijke cobinaties van letters genereert. Dus zoals hieronder het voorbeeld laat zien: a aa ab aaa .. aabb abbb ... zzzzzz en dit van 1 tot 16 letters lang. Het hoeven alleen maar kleine letters te zijn, dus niet ook nog eens hoofdletters. Ik heb eigenlijk geen flauw idee hoe ik die functie moet maken, en hoe ik het moet aanpakken. Kan iemand mij helpen hoe ik dit aan moet pakken, of heeft iemand zo'n functie al thuis liggen? Alvaste bedankt. Barry
Link naar reactie
Tekenreeksen genereren is niet zo moeilijk, maar waar wil je het resultaat hebben? Een functie kan maar 1 resultaat hebben? Een lijst gescheiden door vbCrLf? Even rekenen: 26^16 + 26^15 + 26^14 ... = hmm, dat krijg ik denk ik niet in 1 resultaat gepropt :smile: Je gebruikt de functie Chr(asciiwaarde) om een teken te typen. Om van a (alt+97) tot z (122) te loopen gebruik je For...Next: For i = 97 to 122 str = str & vbCrLf & Chr(i) Next i En dat kun je nesten, maar dat gaat geloof ik maar 8 niveaus diep. Hier een voorbeeldje met drie niveaus: [code:1:a2882c4adc] Open "C:letters.txt" For Output As #1 For a = 97 To 122 grp = Chr(a) Print #1, grp For b = 97 To 122 grp2 = grp & Chr(b) Print #1, grp2 For c = 97 To 122 Print #1, grp2 & Chr(c) Next c Next b Next a Close #1 [/code:1:a2882c4adc]
Link naar reactie
Weet je zeker dat je voor 16 karakters wilt gaan? Ik heb onderstaande code gedraaid met 3, 4, 5 en 6 karakters lang, en de grootte van het bestand werd achtereenvolgens 91Kb, 2,8Mb, 86Mb en de laatste heb ik gestopt toen hij bij "lykbkr" was. Het bestand was toen al 1,2 Gb groot. Dit is dus iedere combinatie plus de "carriage return" en "line feed" karakters. Hier is de code: [code:1:f976d8cfb1]Option Explicit Private Const Aantal = 16 Private Sub Form_Load() Dim TekenReeks(1 To Aantal) As String Dim s As String Dim t As Integer Dim u As Integer For t = 1 To Aantal TekenReeks(t) = " " Next t Open "C:Lijst.txt" For Output As #1 Do s = "" For t = 1 To Aantal Select Case TekenReeks(t) Case " " TekenReeks(t) = "a" Exit For Case Is < "z" u = Asc(TekenReeks(t)) + 1 TekenReeks(t) = Chr(u) Exit For Case "z" TekenReeks(t) = "a" End Select Next t For u = Aantal To 1 Step -1 s = s & TekenReeks(u) Next u Trim (s) Print #1, s Loop While Right(s, Aantal) <> Right("zzzzzzzzzzzzzzzz", Aantal) Close #1 End Sub[/code:1:f976d8cfb1] Nogmaals, je kunt wel naar 16 karakters lengte gaan maar zorg dan voor voldoende schijfruimte en een heeeeeeeeel lang weekend. [img:f976d8cfb1]http://216.40.201.155/s/contrib/blackeye/stretch.gif[/img:f976d8cfb1]
Link naar reactie
[quote:968f766d78] Op 26-02-2002 23:30, schreef Paulus: Tekenreeksen genereren is niet zo moeilijk, maar waar wil je het resultaat hebben? Een functie kan maar 1 resultaat hebben? Een lijst gescheiden door vbCrLf? Even rekenen: 26^16 + 26^15 + 26^14 ... = hmm, dat krijg ik denk ik niet in 1 resultaat gepropt :smile: Je gebruikt de functie Chr(asciiwaarde) om een teken te typen. Om van a (alt+97) tot z (122) te loopen gebruik je For...Next: For i = 97 to 122 str = str & vbCrLf & Chr(i) Next i En dat kun je nesten, maar dat gaat geloof ik maar 8 niveaus diep. Hier een voorbeeldje met drie niveaus: [code:1:968f766d78] Open "C:letters.txt" For Output As #1 For a = 97 To 122 grp = Chr(a) Print #1, grp For b = 97 To 122 grp2 = grp & Chr(b) Print #1, grp2 For c = 97 To 122 Print #1, grp2 & Chr(c) Next c Next b Next a Close #1 [/code:1:968f766d78] [/quote:968f766d78] Ik wil alle resultaten in een db stoppen, maar voordat ik dat doe, controleer ik via de spellingschecker van word, of het een correct woord is. Of weet iemand een mogelijkheid om de woorden die word gebruik in de spellingschecker uit te lezen, dus die dictionary??? Groetjes, Barry
Link naar reactie
  • 2 weken later...
Inderdaad, ik heb het intussen draaiend gekregen op de manier zoals DarkScribe vertelde. Op het moment dat hij een print doet, heb ik een check via word of het een goed woord is, enzo ja dan een insert in een access db. Het werkt allemaal vlekkeloos, dus iedereen bedankt voor zijn/haar moeite.... Gr, Barry
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...