Geheim taal, werkt niet

Status
Niet open voor verdere reacties.

kevenvz

Gebruiker
Lid geworden
14 mei 2011
Berichten
104
Hallo, ik ben bezig met een geheimtaal generator.

Maar, hij geeft alleen abbbbaaaabba ababba aan :S

Code:
Private Sub TextToSecretGenerate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextToSecretGenerate.Click
        TextToSecret.Text = Replace(TextToSecret.Text, "a", "c")
        TextToSecret.Text = Replace(TextToSecret.Text, "b", "d")
        TextToSecret.Text = Replace(TextToSecret.Text, "c", "e")
        TextToSecret.Text = Replace(TextToSecret.Text, "d", "f")
        TextToSecret.Text = Replace(TextToSecret.Text, "e", "g")
        TextToSecret.Text = Replace(TextToSecret.Text, "f", "h")
        TextToSecret.Text = Replace(TextToSecret.Text, "g", "i")
        TextToSecret.Text = Replace(TextToSecret.Text, "h", "j")
        TextToSecret.Text = Replace(TextToSecret.Text, "i", "k")
        TextToSecret.Text = Replace(TextToSecret.Text, "j", "l")
        TextToSecret.Text = Replace(TextToSecret.Text, "k", "m")
        TextToSecret.Text = Replace(TextToSecret.Text, "l", "n")
        TextToSecret.Text = Replace(TextToSecret.Text, "m", "o")
        TextToSecret.Text = Replace(TextToSecret.Text, "n", "p")
        TextToSecret.Text = Replace(TextToSecret.Text, "o", "q")
        TextToSecret.Text = Replace(TextToSecret.Text, "p", "r")
        TextToSecret.Text = Replace(TextToSecret.Text, "q", "s")
        TextToSecret.Text = Replace(TextToSecret.Text, "r", "t")
        TextToSecret.Text = Replace(TextToSecret.Text, "s", "u")
        TextToSecret.Text = Replace(TextToSecret.Text, "t", "v")
        TextToSecret.Text = Replace(TextToSecret.Text, "u", "w")
        TextToSecret.Text = Replace(TextToSecret.Text, "v", "x")
        TextToSecret.Text = Replace(TextToSecret.Text, "w", "y")
        TextToSecret.Text = Replace(TextToSecret.Text, "x", "z")
        TextToSecret.Text = Replace(TextToSecret.Text, "y", "a")
        TextToSecret.Text = Replace(TextToSecret.Text, "z", "b")
    End Sub
wat is er mis :S?
 
[CPP]Dim Tekst As String = TextToSecret.Text
Tekst = Replace(TextToSecret.Text, "a", "c")[/CPP]

en zo verder.

Dan:
[CPP]TextToSecret.Text = Tekst[/CPP]
 
Ah, rotatie 2... :D


*eh, wat er misgaat in je 1e code stukje is dit: stel je hebt deze text:
dan wordt de a naar een c gemaakt in de 1e regel code:
op de 3e regel wordt echter elke c naar een e gemaakt. Dus wordt het dit:

etcetera etcetera. Zo 'draait' je code dus door tot de z naar een b.



De code kan je veel beter zo doen (noot: vb is zo roestig dat ik maar pseudo doe):


[CPP]dim spul as array = input.split(''); // trek je input uiteen tot een array
dim output as string = ""

for i = 0 to length(spul)
// schuif alle tekens op met 2. Kan heel netjes met asc() / chr() oid:
output = output & chr( (asc(spul) + 2) )
end

return output[/CPP]


Met asc() haal je de code op van een character in ASCII. De A is bijvoorbeeld 65, zie bv. hier. Met chr() maak je van een ASCII code een character. Tegenovergestelde van asc().


Op het moment zal het niet werken want het 'roteert' niet. Een modulo lost dit op maar ik heb op het moment eventjes geen zin in wiskunde ;) (% 65 is fout trouwens) Je zal even moeten klooien met een string waarin alle characters staan. Of twee strings, een voor hoofdletters en een voor kleine letters. Deze kan je wel mooi mod'en.
 
Laatst bewerkt:
@ThatGuy: Ja dat had ik ook al opgemerkt, ben nu iets aan 't maken ;)
 
Aha, nu snap ik het. Maar ik snap die code van jou niet zo goed. ik wil de code wel snappen, want dat kan van pas komen.
 
Deze code vertaalt precies zoals jij het wilde:

[cpp]Public Function Vertaler(ByVal Input As String) As String
Dim temp As String = ""
Dim tempchar As Integer

'hoofdletters, 65 t/m 90'
For Each item As Char In Input
tempchar = AscW(item)
If tempchar <= 88 Then
temp &= ChrW(tempchar + 2)
Else
If tempchar = 89 Then temp &= ChrW(65)
If tempchar = 90 Then temp &= ChrW(66)
If tempchar >= 97 Then
'kleine letters, 97 t/m 122'
If tempchar <= 120 Then
temp &= ChrW(tempchar + 2)
Else
If tempchar = 121 Then temp &= ChrW(97)
If tempchar = 122 Then temp &= ChrW(98)
End If
End If
End If
Next
Return temp
End Function[/cpp]

Hier worden y en z, a en b.
Dus ook met hoofdletters.

De code van ThatGuy schuift ze 2 plaatsen op.

:)
 
Laatst bewerkt:
Bedankt! het is opgelost. Die code snap ik beter. Ik heb nu ook de vertaler terug gemaakt gewoon de + naar de -. Harstikke bedankt!

OPGELOST!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan