Visual Basic 6: Nahrádzanie písmen inými písmenami

Programovacie jazyky, rady, poradňa...
tom1597530
Zablokovaný
Zablokovaný
Príspevky: 170
Registrovaný: 18 okt 2008, 14:28

Visual Basic 6: Nahrádzanie písmen inými písmenami

Príspevok od používateľa tom1597530 »

Dobrý deň. Rozmýšľal som nad niečim takým ako tajné písmo :D. Žeby som napríklad napísal slovo JABLKO a namiesto J by dalo X, namiesto A by dalo L... teda by z toho vzniklo napr. XLPAQI. Ja by som len potreboval kúsok kódu len na jedno písmeno a podľa toho si vytvorím už zvyšok. Teda mám Text1, Text2, Command1 a teda by to bolo nejako takto:
  • Ak Text1.Text osbahuje "A", tak každé nahradiť s "X" a napísať výsledok do Text2.

Teda ak napíšem do Text1 napr. STROM, tak do Text2 po stlačení Command1 napíše napr. PALXD.

To je všetko čo potrebujem vedieť. Len 1 písmeno a zvyšok si už spravím sám. Veľmi vám ďakujem, bol by som veľmi vďačný.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

funkcia replace robí presne to čo požaduješ

Kód: Vybrať všetko

Text2.Text = Replace(Text1.Text, 'A', 'X')
tom1597530
Zablokovaný
Zablokovaný
Príspevky: 170
Registrovaný: 18 okt 2008, 14:28

Príspevok od používateľa tom1597530 »

Dakujem, som ti velmi vdacny. Pomohol si mi

//autoeditácia príspevku ( 18 Dec 2009, 19:36 )
audiotrack napísal:funkcia replace robí presne to čo požaduješ

Kód: Vybrať všetko

Text2.Text = Replace(Text1.Text, 'A', 'X')
A predsa je tam jeden problem. Ak tam dam nieco taketo:

Kód: Vybrať všetko

Text2.Text = Replace(Text1.Text, "A", "Z")
Text2.Text = Replace(Text1.Text, "B", "Y")
Tak keď napíšem napríklad ABBA, tak mi to nepreloží, že ZYYZ, ale AYYA. Takže prekladá len ten posledný príkaz. Nevieš ako by som to mohol spraviť tak, aby to preložilo všetko?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

to je úplne logické že prekladá iba posledný, vravel si že ti stačí jedno písmenko a ostatné dorobíš. V tom prípade som to mohol rovno takto zapísať, ale ako vidím niekto nie je schopný použiť vlastnú hlavu :)
Prvý preložíš a nedáš výsledok do text2 ale do nejakej premennej, ktorá bude vstupovať ako parameter do všetkých ostatných a až posledný pôjde do text2
tom1597530
Zablokovaný
Zablokovaný
Príspevky: 170
Registrovaný: 18 okt 2008, 14:28

Príspevok od používateľa tom1597530 »

audiotrack napísal:to je úplne logické že prekladá iba posledný, vravel si že ti stačí jedno písmenko a ostatné dorobíš. V tom prípade som to mohol rovno takto zapísať, ale ako vidím niekto nie je schopný použiť vlastnú hlavu :)
Prvý preložíš a nedáš výsledok do text2 ale do nejakej premennej, ktorá bude vstupovať ako parameter do všetkých ostatných a až posledný pôjde do text2
Ako to myslíš?

// Ja ešte s premennými neviem dobre narabat, mohol by si mi to pls objasnit?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

dim premenna as string
.
.
.
premenna = Replace(Text1.Text, "A", "Z")
premenna = Replace(premenna, "B", "Y")
premenna = Replace(premenna, "C", "X")
.
.
.
Text2.Text = Replace(premenna, "Z", "A")
tom1597530
Zablokovaný
Zablokovaný
Príspevky: 170
Registrovaný: 18 okt 2008, 14:28

Príspevok od používateľa tom1597530 »

Ahaaa, uz tomu chapem a navyse to funguje :D. Diky moc za cas a trpezlivost :D

//autoeditácia príspevku ( 18 Dec 2009, 20:07 )
Je mi to trapne znova sa pytat, ale fungovalo to az kym som nezadal nieco taketo:

Kód: Vybrať všetko

Private Sub Text1_Change()
Dim x As String

x = Replace(Text1.Text, "A", "Z")
x = Replace(x, "a", "z")
x = Replace(x, "B", "Y")
x = Replace(x, "b", "y")
x = Replace(x, "C", "X")
x = Replace(x, "c", "x")
x = Replace(x, "D", "W")
x = Replace(x, "d", "w")
x = Replace(x, "E", "V")
x = Replace(x, "e", "v")
x = Replace(x, "F", "U")
x = Replace(x, "f", "u")
x = Replace(x, "G", "T")
x = Replace(x, "g", "t")
x = Replace(x, "H", "S")
x = Replace(x, "h", "s")
x = Replace(x, "I", "R")
x = Replace(x, "i", "r")
x = Replace(x, "J", "Q")
x = Replace(x, "j", "q")
x = Replace(x, "K", "P")
x = Replace(x, "k", "p")
x = Replace(x, "L", "O")
x = Replace(x, "l", "o")
x = Replace(x, "M", "N")
x = Replace(x, "m", "n")
x = Replace(x, "N", "M")
x = Replace(x, "n", "m")
x = Replace(x, "O", "L")
x = Replace(x, "o", "l")
x = Replace(x, "P", "K")
x = Replace(x, "p", "k")
x = Replace(x, "Q", "J")
x = Replace(x, "q", "j")
x = Replace(x, "R", "I")
x = Replace(x, "r", "i")
x = Replace(x, "S", "H")
x = Replace(x, "s", "h")
x = Replace(x, "T", "G")
x = Replace(x, "t", "g")
x = Replace(x, "U", "F")
x = Replace(x, "u", "f")
x = Replace(x, "V", "E")
x = Replace(x, "v", "e")
x = Replace(x, "W", "D")
x = Replace(x, "w", "d")
x = Replace(x, "X", "C")
x = Replace(x, "x", "c")
x = Replace(x, "Y", "B")
x = Replace(x, "y", "b")
x = Replace(x, "Z", "A")
Text2.Text = Replace(x, "z", "a")
End Sub
Nepreklada to tak jak by malo, teda ak napisem napriklad

Stastne a Vesele, co by malo byt Hgzhgmv z Evhvov.
Ono to ale prelozi, ze Hgahgme a Eehele.

Nepoznal by si nejake riesenie, prosim ta. Bol by som fakt vdacny.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

chyba nie je v programe, ale tvojom návrhu "šifri". Malé e preloží na v, a potom pri spodku v preloží späť na e. Preto sa ti malé e a malé a neprekladajú (chyby by nastali aj pri iných, ale tie v tomto príklade nevidno). Dalo by sa to ošetriť keby prechádzaš v cykle po každom písmenku vstupu aby si sa na jedno písmenko nedostal dvakrát
tom1597530
Zablokovaný
Zablokovaný
Príspevky: 170
Registrovaný: 18 okt 2008, 14:28

Príspevok od používateľa tom1597530 »

Máš nejaký návrh? Nič ma nenapadá
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

veď som ti ho práve napísal ^
prechádzať každým znakom vstupu, zameniť ho a uložiť do výstupu (teraz to robíš tak že zameníš všetky áčka, potom všetky béčka...)
tom1597530
Zablokovaný
Zablokovaný
Príspevky: 170
Registrovaný: 18 okt 2008, 14:28

Príspevok od používateľa tom1597530 »

Ozaj :D. Dakujem ti za trpezlivost somnou, ale to poznas...zaciatocnik :D cawko

//autoeditácia príspevku ( 19 Dec 2009, 9:38 )
Takže, podarilo sa mi vytvoriť novú šifru. Šťastné a Veselé, čo zmení cez UText na ŠŤASTNÉ A VESELÉ zašifruje takto: !$#@4!$#@5#@\E=ee-/*##!?#@5 #@\ -_-_/./)E=e./);°_()-!?#@5
Napísať odpoveď