Toon posts:

[VB] Letters veranderen...

Pagina: 1
Acties:
  • 235 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil een simpel programma maken waarmee je met 1 druk op de knop tekst kan omzetten\veranderen.

Daarmee bedoel ik dat ik andere 'waarden' (zeg ik dat goed ?) op wil kunnen geven voor letters
bijv: A=X, B=Y, C=Z

Dus als je in een tekstvlak ABC invoerd dan krijg je met 1 druk op de knop XYZ

Is dit mogelijk in VB ? en zo ja, hoe moet ik dat dan doen ?

  • KO
  • Registratie: December 2001
  • Laatst online: 12-11-2023

KO

Ja dit is mogelijk.
Visual Basic:
1
If text1.text="A" then text1.text="B"

Yesterday Is History. Today Is A Gift. Tomorrow Is Mystery


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Check www.pscode.com voor "ceasar shift", zo heet deze methode van 'encryptie'

Overigens lijkt me dat je dit het beste kan doen dmv. Asc(letter) en daardan iets mee uithaalt, en dan weer Chr(asciinummer) de letter neerzet..

  • TheLunatic
  • Registratie: April 2001
  • Laatst online: 09-07 16:41

TheLunatic

Ouwe boxen.

In Delphi zou ik het zo doen:

code:
1
2
3
4
5
6
7
8
9
var i,x:Integer;
    Str: String;

begin

for i:=1 to Length(Str) do
  Str[i]:=Chr(Ord(Str[i])+x);

end;

Mother, will they like this song?


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:30

sopsop

[v] [;,,;] [v]

Als je een wat onlogischere versleuteling wil (dus niet 23 bij de ACSII code wil optellen zou je het ook zo kunnen doen):

Je maakt een functie
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
Public Function Versleutel(origineel as string) as String
dim i as integer
i = 0
for i = 0 to Len(origineel)-1
  select case origineel(i)
     case "a": versleutel =versleutel & "b"
'   ...etc...
     case "z": versleutel =versleutel & "x"
  end select
next i
end function


Je functie roep je dan aan als:
Visual Basic:
1
text1.text = versleutel(text1.text)

Verwijderd

zie www.eieltsm.tk... textconverter als je de source wil, hoor ik t wel

Verwijderd

Topicstarter
Thanx voor de tips, ik ga er eens naar kijken.

Verwijderd

Topicstarter
KO schreef op 16 september 2002 @ 08:52:
Ja dit is mogelijk.
Visual Basic:
1
If text1.text="A" then text1.text="B"
Dit is eigenlijk het enigste dat ik nodig heb, kwil het simpel houden...
Maar nu zit ik met een probleem, ik stel bijv. in dat:
A = B
en
C = R

Als ik dan A typ in het tekstvak en ik druk op de daarvoor ingestelde knop dan komt er netjes B te staan... maar zogauw ik AC typ werkt het niet meer, dan doet ie gewoon niks inplaats van er BR van te maken.

Hoe moet ik dit oplossen ?

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

loop door de hele text

for I = 1 to len(text1.text)
'//gebruik mid$(text1.text,I,1) om een letter per keer te krijgen
next I

Trouwens, dit is beetje basic. Je vindt hier zeker wat over op www.pscode.com of vbexplorer.com. Ik wou eerst alles neerzetten, maar als je zelf een beetje uitzoekt, dan leer je weer meer :Y) (en niet meteen als UTFS bedoeld ofzo hoor ;))

Verwijderd

41.6C.6D.61.72 schreef op 16 september 2002 @ 21:54:
loop door de hele text

for I = 1 to len(text1.text)
'//gebruik mid$(text1.text,I,1) om een letter per keer te krijgen
next I
Of je gebruikt gewoon Replace

Verwijderd

oei, mijn textconverter doettet niet goed, zal m aanpassen vanavond...

Verwijderd

mbt setup ^^^^^^^^

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Verwijderd schreef op 16 september 2002 @ 21:57:
[...]

Of je gebruikt gewoon Replace
'//Vervang a's
Replace$("aaaabbbb","a","z")

'//Vervang z's
Replace$("zzzzzbbbb","z","e")

Dan gaat er iets niet goed denk ik, misschien ook wel, maar het is nog vroeg :)

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:30

sopsop

[v] [;,,;] [v]

41.6C.6D.61.72 schreef op 17 september 2002 @ 09:15:
[...]


'//Vervang a's
Replace$("aaaabbbb","a","z")

'//Vervang z's
Replace$("zzzzzbbbb","z","e")

Dan gaat er iets niet goed denk ik, misschien ook wel, maar het is nog vroeg :)
Als je dan je 'a' door 'z' vervangt en daarna je 'z' door 'b' vervangt, dan zijn al je 'a's uit de eerste ronde door 'b' vervangen en niet door 'z'.

Kijk nog eens naar mijn vorige post, die functie doorloopt de hele string, en hij heeft de mogelijkheid om per letter aan te geven wat je wilt vervangen.

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

boppert schreef op 17 september 2002 @ 09:28:
[...]

Als je dan je 'a' door 'z' vervangt en daarna je 'z' door 'b' vervangt, dan zijn al je 'a's uit de eerste ronde door 'b' vervangen en niet door 'z'.

Kijk nog eens naar mijn vorige post, die functie doorloopt de hele string, en hij heeft de mogelijkheid om per letter aan te geven wat je wilt vervangen.
Okee, nu heb je * Sponge confused :)

Is dat nou iets goeds wat je zegt, of niet? :) Want volgens mij krijg je het dus niet goed namelijk

"aaaaabbbbcccc" replace a -> x
=
"xxxxxxbbbbcccc" replace b -> y
=
"xxxxxxyyyycccc" replace c-> z
=
"xxxxxxyyyyzzzz" [... ] replace z - > 1
=
"xxxxxxyyyy1111"

^ en daar gaat hij dan toch de mist in? want de c die al was vervangen door z wordt nu 1 omdat de z met 1 vervangen moet worden..

misschien ook niet ;)

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:30

sopsop

[v] [;,,;] [v]

41.6C.6D.61.72 schreef op 17 september 2002 @ 10:54:
[...]


Okee, nu heb je * sopsop confused :)

Is dat nou iets goeds wat je zegt, of niet? :) Want volgens mij krijg je het dus niet goed namelijk

"aaaaabbbbcccc" replace a -> x
=
"xxxxxxbbbbcccc" replace b -> y
=
"xxxxxxyyyycccc" replace c-> z
=
"xxxxxxyyyyzzzz" [... ] replace z - > 1
=
"xxxxxxyyyy1111"

^ en daar gaat hij dan toch de mist in? want de c die al was vervangen door z wordt nu 1 omdat de z met 1 vervangen moet worden..

misschien ook niet ;)
Da's nou precies wat ik bedoelde!
Enige oplossing is d.m.v. een select case door de string heen struinen en per positie de vervanging uitvoeren.

Verwijderd

Topicstarter
Ja... op dat probleem stuitte ik dus zelf ook :) maar hoe kun je dan "een select case door de string heen laten struinen en per positie de vervanging uitvoeren" ?

Verwijderd

Topicstarter
Want ik weet nou niet precies hoe ik die functie die je poste kan laten werken... zou je misschien ff wat uitgebreider uit leg willen geven ?

Verwijderd

Hier een mooi stukje code:

Private Sub cmdCodeer_Click()
Text1.Text = codeer(Text1.Text)
End Sub

Private Function codeer(origineel As String) As String
Dim x As Integer
Dim uitvoer As String
For x = 1 To Len(origineel)
uitvoer = uitvoer & Chr$(Asc(Mid(origineel, x, 1)) + 23)
Next x
codeer = uitvoer

End Function


Private Sub cmdDecodeer_Click()
Text1.Text = decodeer(Text1.Text)
End Sub

Private Function decodeer(origineel As String) As String
Dim x As Integer
Dim uitvoer As String
For x = 1 To Len(origineel)
uitvoer = uitvoer & Chr$(Asc(Mid(origineel, x, 1)) - 23)
Next x
decodeer = uitvoer

End Function

Hiermee kan je lekker gewone text coderen en decoderen, maak dus wel een twee knoppies aan die cmdCodeer en cmdDecodeer heten en een textboxje die text1 heet. Hij heeft alleen rekening gehouden met gewone text zegmaar, dus geen ascii-waardes boven de 256-23, dus die beveiliging mag je er zelf inbouwen.

Verwijderd

Topicstarter
Zou je de code ook kunnen toelichten ? dan weet ik ongeveer waar het overgaat, en das zeker zo leerzaam denk ik.

Verwijderd

Deze werkt gewoon:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Option Explicit

Const Van  As String = "abcdefghijklmnopqrstuvwxyz.,"
Const Naar As String = "qwertyuiopasdfghjklzxcvbnm,."

Private Function Convert(txt As String) As String
Dim i As Integer
Dim p As Integer
    For i = 1 To Len(txt)                    ' Voor elk karakter in de tekst
        p = InStr(Van, Mid(txt, i, 1))       ' Zoek of deze geconverteerd moet worden in VAN
        If p > 0 Then                        ' Zoja:
            Mid(txt, i, 1) = Mid(Naar, p, 1) ' Verander dit karakter, door een karakter in NAAR
        End If
    Next
    Convert = txt
End Function


It's a simple

edit:
aangepast

Punten en komma's kunnen desnoods omgedraaid worden...
(dat werkt niet met de replace functie)

  • 418O2
  • Registratie: November 2001
  • Niet online

418O2

u mad?

Mhh.. is er een mogelijkheid om dit zo om te bouwen dat alle punten als komma worden weggeschreven naar een database? of dat je kan scannen op punten?

Ik ben nl bezig met een site waar gegevens worden ingevoerd en weggeschreven worden naar een database. Nu wil ik zorgen dat als iemand per ongeluk een punt invoerd, die punt wordt omgezet in een komma. Kan dit in asp ingevoegd worden? Of moet je daarvoor een macro aanmaken?

  • zoepercavia
  • Registratie: September 2001
  • Laatst online: 26-12-2025
418O2 schreef op 18 september 2002 @ 07:46:
Mhh.. is er een mogelijkheid om dit zo om te bouwen dat alle punten als komma worden weggeschreven naar een database? of dat je kan scannen op punten?
ASP:
1
2
dim nietKommaTekst, kommaTekst
kommaTekst = Replace(nietKommaTekst, ".", ",")

Panacea.NL als je geinteresserd bent in IT en Geneeskunde!


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

zoiets als:

MyRecordset("bericht") = Replace$(strIngevoerdeText,".",",")

^, zo ja, had je zelf ook wel kunnen uitvogelen eigenlijk, imo

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:30

sopsop

[v] [;,,;] [v]

Verwijderd schreef op 17 september 2002 @ 19:53:
Hier een mooi stukje code:

Private Sub cmdCodeer_Click()
Text1.Text = codeer(Text1.Text)
End Sub

Private Function codeer(origineel As String) As String
Dim x As Integer
Dim uitvoer As String
For x = 1 To Len(origineel)
uitvoer = uitvoer & Chr$(Asc(Mid(origineel, x, 1)) + 23)
Next x
codeer = uitvoer

End Function


Private Sub cmdDecodeer_Click()
Text1.Text = decodeer(Text1.Text)
End Sub

Private Function decodeer(origineel As String) As String
Dim x As Integer
Dim uitvoer As String
For x = 1 To Len(origineel)
uitvoer = uitvoer & Chr$(Asc(Mid(origineel, x, 1)) - 23)
Next x
decodeer = uitvoer

End Function

Hiermee kan je lekker gewone text coderen en decoderen, maak dus wel een twee knoppies aan die cmdCodeer en cmdDecodeer heten en een textboxje die text1 heet. Hij heeft alleen rekening gehouden met gewone text zegmaar, dus geen ascii-waardes boven de 256-23, dus die beveiliging mag je er zelf inbouwen.
Juist en als je dan wilt 'select casen' doe je dat zo:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Function codeer(origineel As String) As String
Dim x As Integer
Dim uitvoer As String
For x = 1 To Len(origineel)
    Select case Mid(Origineel,x,1)
    case 'a': uitvoer = uitvoer & 'b'
'.....
    case 'z': uitvoer = uitvoer & 'W'
    case else: uitvoer = uitvoer & Mid(Origineel,x,1)
    end select
Next x
codeer = uitvoer

End Function

Verwijderd

Verwijderd schreef op 18 september 2002 @ 01:38:
...
edit:
aangepast

Punten en komma's kunnen desnoods omgedraaid worden...
(dat werkt niet met de replace functie)

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Replace werkt voltgens mij perfect met punten en komma's?

Leuk icoon, maakt je vrolijk :D

Verwijderd

Euh ja natuurlijk werkt dat, je hebt gelijk en de replace$() functie is ook een stuk korter de oplossing die ik aan draag. En dit werkt goed voor de offtopic-tussendoor-vraag.

De topicstarter bracht echter de vraag meer als converter van karakters... dat werkt niet met REPLACE en de SELCECT CASE is een beetje omslachtig.

Neem het volgende: (niet helemaal uitgelegd, maar is wel duidelijk volgens mij)
code:
1
2
3
4
5
6
7
8
9
10
11
Conversie tabel    Replaces      Sub_Convert

                   ZOEKSTR       idx ZOEKSTR      

Z --> V            VOEKSTR        1  [V]OEKSTR
T --> N            VOEKSNR        2  V[E]EKSTR
S --> A            VOEKANR        3  VE[R]KSTR
R --> G            VOEKANG        4  VER[V]STR
O --> E            VEEKANG        5  VERV[A]TR
K --> V            VEEVANG        6  VERVA[N]R
E --> R            VRRVANG        7  VERVAN[G]

offtopic:
Thanx, dat was de bedoeling ook van het icoontje :)

Verwijderd

Topicstarter
Thanx iedereen, tis uit eindelijk gelukt :) weer een newbie uit z'n zorgen geholpen :p

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

MArchello, volgens mij hetzelfde probleem als ik hierboven ook al duidelijk heb gemaakt ;)
Pagina: 1