vb6 replace

Status
Niet open voor verdere reacties.

mmatteman

Gebruiker
Lid geworden
3 sep 2008
Berichten
287
hallo,

ik heb wat problemen met de replace() functie in vb6. het lukt me namelijk wel om bijvoorbeeld de a met de b om te wisselen, maar niet meer terug.
hier is mijn code.
Code:
Private Sub Command1_Click()
Text1.Text = Replace(Text1.Text, "a", "b")
Text1.Text = Replace(Text1.Text, "b", "a")
Text1.Text = Replace(Text1.Text, "c", "d")
Text1.Text = Replace(Text1.Text, "d", "c")
Text1.Text = Replace(Text1.Text, "e", "f")
Text1.Text = Replace(Text1.Text, "f", "e")
Text1.Text = Replace(Text1.Text, "g", "h")
Text1.Text = Replace(Text1.Text, "h", "g")
Text1.Text = Replace(Text1.Text, "i", "j")
Text1.Text = Replace(Text1.Text, "j", "i")
Text1.Text = Replace(Text1.Text, "k", "l")
Text1.Text = Replace(Text1.Text, "l", "k")
Text1.Text = Replace(Text1.Text, "m", "n")
Text1.Text = Replace(Text1.Text, "n", "m")
Text1.Text = Replace(Text1.Text, "o", "p")
Text1.Text = Replace(Text1.Text, "p", "o")
Text1.Text = Replace(Text1.Text, "q", "r")
Text1.Text = Replace(Text1.Text, "r", "q")
Text1.Text = Replace(Text1.Text, "s", "t")
Text1.Text = Replace(Text1.Text, "t", "s")
Text1.Text = Replace(Text1.Text, "u", "v")
Text1.Text = Replace(Text1.Text, "v", "u")
Text1.Text = Replace(Text1.Text, "w", "x")
Text1.Text = Replace(Text1.Text, "x", "w")
Text1.Text = Replace(Text1.Text, "y", "z")
Text1.Text = Replace(Text1.Text, "z", "y")

End Sub

Private Sub Command2_Click()
Text2.Text = Replace(Text1.Text, "a", "b")
Text2.Text = Replace(Text1.Text, "b", "a")
Text2.Text = Replace(Text1.Text, "c", "d")
Text2.Text = Replace(Text1.Text, "d", "c")
Text2.Text = Replace(Text1.Text, "e", "f")
Text2.Text = Replace(Text1.Text, "f", "e")
Text2.Text = Replace(Text1.Text, "g", "h")
Text2.Text = Replace(Text1.Text, "h", "g")
Text2.Text = Replace(Text1.Text, "i", "j")
Text2.Text = Replace(Text1.Text, "j", "i")
Text2.Text = Replace(Text1.Text, "k", "l")
Text2.Text = Replace(Text1.Text, "l", "k")
Text2.Text = Replace(Text1.Text, "m", "n")
Text2.Text = Replace(Text1.Text, "n", "m")
Text2.Text = Replace(Text1.Text, "o", "p")
Text2.Text = Replace(Text1.Text, "p", "o")
Text2.Text = Replace(Text1.Text, "q", "r")
Text2.Text = Replace(Text1.Text, "r", "q")
Text2.Text = Replace(Text1.Text, "s", "t")
Text2.Text = Replace(Text1.Text, "t", "s")
Text2.Text = Replace(Text1.Text, "u", "v")
Text2.Text = Replace(Text1.Text, "v", "u")
Text2.Text = Replace(Text1.Text, "w", "x")
Text2.Text = Replace(Text1.Text, "x", "w")
Text2.Text = Replace(Text1.Text, "y", "z")
Text2.Text = Replace(Text1.Text, "z", "y")
End Sub
wat doe ik fout?:confused:
 
Als je eerst alle a's verandert naar b's en dan dan alle b's naar a's, dan zal je die eerste omzetting terug ongedaan maken!

Je moet eerst alle letters omzetten naar tekens die zeker niet in de tekst voorkomen, en dan die tekens omzetten naar de letters die je uiteindelijk wil.

bijvoorbeeld:

Code:
Text1.Text = Replace(Text1.Text, "a", chr(162))
Text1.Text = Replace(Text1.Text, "b", chr(163))
Text1.Text = Replace(Text1.Text, "c", chr(164))
Text1.Text = Replace(Text1.Text, "d", chr(165))
.....
Text1.Text = Replace(Text1.Text, chr(162), "b")
Text1.Text = Replace(Text1.Text, chr(163), "a")
Text1.Text = Replace(Text1.Text, chr(164), "d")
Text1.Text = Replace(Text1.Text, chr(165), "c")
.....
 
En je kan het nog wat 'mooier' maken door de replace() in een for/next lus te plaatsen.

Maak eens een formulier met een TextBox (met MultiLine=True) en een CommandButton

Code:
Private Sub Command1_Click()
Dim strBron As String, strCode As String, strTemp As String, strTekst As String, i As Integer
  strBron = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  strCode = "badcfehgjilknmporqtsvuxwzyBADCFEHGJILKNMPORQTSVUXWZY"
  strTemp = "˘Ł¤Ą¦§¨©Ş«¬*®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐ"
  strTekst = Text1.Text
  For i = 1 To 52
    strTekst = Replace(strTekst, Mid(strBron, i, 1), Mid(strTemp, i, 1))
  Next
  For i = 1 To 52
    strTekst = Replace(strTekst, Mid(strTemp, i, 1), Mid(strCode, i, 1))
  Next
  Text1.Text = strTekst
End Sub

strBron bevat alle karakters die je wil vervangen.
strCode bevat de respectievelijke karakters waarin je de bron wil vervangen.
strTemp bevat de karakters voor de tussenstap.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan