08. februar 2006 - 10:36Der er
8 kommentarer og 1 løsning
vloaypk som kan lsæes.
Iøfgle en uerndsøeglse på Cmabrigde Uinvertisy, bteyedr det ikke noget i hivklen rkækefløge bgotsavrene såtr i et ord, det esente vgitgie er at det frøtse og sdiste bgosatv i odret er på de rtete padlser. Rseten kan linge vloaypk, men du vil stadig vræe i snatd til at lsæe det. Det er frodi den mnenesekilge hejrne ikke lesær hevr bgotsav, men odret som en hleehd.
Er der en her i dette forum der vil hjælpe med et lille stykke kode, der kan lave en almindeligt skrevet tekst om til noget som ovenstående.
Jeg forstiller mig at man skriver sin tekst i en textbox, som så bliver oversat til en anden textbox.
Hvis brugeren selv kunne vælge hvor mange pladser et bogstav max. må flytte, ville det være super.
For det første, så passer det ikke.. et ord som "hevr" er svær at gennemskue, da det egentligt er "v" der er det primære bogstav.. "h"'et er jo stumpt..
Man kunne lave noget kode, der tog det lagde det første bogstav i en variabel, og det samme med det sidste bogstav..
Så kunne tegn 1 (første bogstav er tegn 0) til max-tegn minus 1, sættes i en tilfældig række følge, og smides en i tredje variabel..
Så kunne man samle variablerne 1, 2 og 3, og derved få det "nye" ord..
Her et eks. Ord1 og Ord2 er tekstfelter på formen.
Private Sub Form_Load() Dim Ord, St As String Dim A, B, C As Byte Dim Bogstaver(30) As String
Ord = InputBox("Indfør Ord") Ord1.Text = Ord
For A = 1 To Len(Ord) Bogstaver(A) = Mid(Ord, A, 1) Next A If Len(Ord) > 3 Then For A = 1 To 3 'TilTallet skal helst være ulige. Randomize 'Jo større tal, jo større ombrydning. B = Int(Rnd * (Len(Ord) - 3)) + 2 St = Bogstaver(B) Bogstaver(B) = Bogstaver(B + 1) Bogstaver(B + 1) = St Next A End If
St = ""
For A = 1 To Len(Ord) St = St + Bogstaver(A) Next A
Denne klarer en sætning og tager højde for komma og punktum. Den kan let udvides til flere tegn.
Private Sub Form_Load() Dim A, B, C, D As Byte Dim Sætning, Sætning1, Ord, St As String
Sætning = InputBox("Indfør sætning") Sætning4.Text = Sætning Sætning1 = "": Ord = "" For A = 1 To Len(Sætning) If Mid(Sætning, A, 1) <> " " Then Ord = Ord + Mid(Sætning, A, 1) End If If Mid(Sætning, A, 1) = " " Or A = Len(Sætning) Then 'MsgBox Ord D = 3 If Right(Ord, 1) = "," Or Right(Ord, 1) = "." Then D = 4 If Len(Ord) > D Then For B = 1 To 1 D = 3 If Right(Ord, 1) = "," Or Right(Ord, 1) = "." Then D = 4 Randomize C = Int(Rnd * (Len(Ord) - D)) + 2 St = Mid(Ord, C, 1) Mid(Ord, C, 1) = Mid(Ord, C + 1, 1) Mid(Ord, C + 1, 1) = St D = 3 Next B End If Sætning1 = Sætning1 + Ord + " " Ord = "" End If Next A Sætning5.Text = Sætning1 End Sub
Ja. Her er svaret. Det var en morsom opgave. Jeg har hygget mig meget med den. Håber, at du får videreudviklet den, så den rigtigt kan bruges.
Hilsen Jørgen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.