Avatar billede al_pacone Nybegynder
08. februar 2006 - 10:36 Der 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.
Avatar billede thesurfer Nybegynder
08. februar 2006 - 10:45 #1
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..

/theSurfer
Avatar billede thesurfer Nybegynder
08. februar 2006 - 10:47 #2
.."stavefajl" kan forekomme.. :-)

/theSurfer
Avatar billede joergen_vinther Nybegynder
08. februar 2006 - 18:50 #3
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
   
    Ord2.Text = St
End Sub
Avatar billede al_pacone Nybegynder
08. februar 2006 - 20:44 #4
Ser ud til at fungere med et enkelt ord.
Hvordan får jeg det til at virke med en hel sætning?
Avatar billede joergen_vinther Nybegynder
08. februar 2006 - 23:13 #5
En simplere kode. Jeg ser på det med en hel sætning.

Private Sub Form_Load()
    Dim Ord, St As String
    Dim A, B As Byte
 
    Ord = InputBox("Indfør Ord")
    Ord1.Text = Ord
   
    For B = 1 To 3
        A = Int(Rnd * (Len(Ord) - 3)) + 2
        St = Mid(Ord, A, 1)
        Mid(Ord, A, 1) = Mid(Ord, A + 1, 1)
        Mid(Ord, A + 1, 1) = St
    Next B
   
    Ord2.Text = Ord
End Sub
Avatar billede joergen_vinther Nybegynder
09. februar 2006 - 02:22 #6
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
Avatar billede blueeye97 Nybegynder
11. februar 2006 - 23:13 #7
Der må klart være points til Jørgen. Sjovt lille program at lege med :o))
Avatar billede al_pacone Nybegynder
13. februar 2006 - 16:47 #8
Ser ud til at fungere fint.
Tak for hjælpen.

Jøregn: Simder du et savr, så du kan få ldit ponit reutr.
Gæt selv hvordan jeg kom frem til den tåbelige måde og stave på.
Avatar billede joergen_vinther Nybegynder
14. februar 2006 - 10:54 #9
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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester