Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Práce s textovými řetězci

Podobné prezentace


Prezentace na téma: "Práce s textovými řetězci"— Transkript prezentace:

1 Práce s textovými řetězci

2 Spojování řetězců (konkatenace)
Operátor & Vysledek = “úloha má jedno řešení: ” & x1

3 Délka textového řetězce
Len(řetězec) Vrátí délku textového řetězce v počtu znaků. Příklad retezec = InputBox("zadej retezec") delka = Len(retezec) i = MsgBox(delka, , "delka retezce je")

4 Hledání v řetězci Vysledek = InStr([start],prohledávaný,hledaný)
Vrací pozici prvního výskytu textového řetězce hledaný v textovém řetězci prohledávaný, nebo 0, není-li nalezen. Nepovinný číselný parametr start umožňuje začít prohledávání od dané pozice.

5 Příklady pozice1 = InStr("mistr střelmistr", "mistr")
MsgBox (pozice1) MsgBox (pozice2) MsgBox (pozice3)

6 Ořezání mezer Vysledek = Trim(řetězec)
Odstraní z textového řetězce všechny úvodní a koncové mezery. Příklad retezec = (" blb ") MsgBox (Len(retezec)) MsgBox (Len(Trim(retezec)))

7 Získání části řetězce Vysledek = Left(řetězec,n)
Vrátí z řetězce n znaků zleva. Vysledek = Right(řetězec,n) Vrátí z řetězce n znaků zprava. Vysledek = Mid(řetězec, začátek,délka) Vrátí z textového řetězce od zadané pozice určitý počet znaků.

8 Příklad retezec = ("Byl pozdní večer první máj")
prvni = Left(retezec, 3) druhy = Right(retezec, 3) treti = Mid(retezec, 3, 3) cast = "večer" ctvrty = Mid(retezec, InStr(retezec, cast), Len(cast)) MsgBox (prvni & vbCrLf & druhy & vbCrLf & treti & vbCrLf & ctvrty)

9 Převod na velká a malá písmena
Vysledek =LCase(řetězec) Převede textový řetězec na malá písmena. vysledek=UCase(řetězec) Převede textový řetězec na velká písmena. Příklad mala = LCase("ABCD") velka = UCase("abCd") MsgBox (mala & vbCrLf & velka)

10 Převod mezi znaky a jejich ASCII hodnotou
Vysledek = Asc(znak) Vrátí ASCII hodnotu znaku. Vysledek = Chr(číslo) Vrátí znak odpovídající jeho ASCII hodnotě Příklady MsgBox (Asc("a")) MsgBox (Chr(99)) MsgBox (Asc("a") - Asc("A")) MsgBox (Chr(Asc("a")))

11 Cézarovská šifra f(x)=x+k mod N KLÍČ K = 3
B C D E F G H I J K L M N O P Q R S T U V W X Y Z

12 Cézarovská šifra f(x)=x+k mod N KLÍČ K = 3
Tento text bude zasifrovan Cezarovskou sifrou s klicem k rovnym 3. Whqwr whaw exgh cdvlhurydq Fhcduryvnrx vlivrx v nofhp a uryqbp 3. ABCDEFGHIJKLMNOPQRSTUVWXYZ DEFGHIJKLMNOPQRSTUVWXYZABC

13 Příklad retezec = InputBox("Zadej řetězec pro šifrování", "Cézarova šifra") klic = InputBox("Zadej klíč", "Cézarova šifra") Vlastní šifrování Cézarovskou šifrou blb = MsgBox(vysledek, , "Cézarovská šifra")

14 Vlastní šifrování Cézarovskou šifrou
delka = Len(retezec) vysledek = "" For i = 1 To delka znak = Mid(retezec, i, 1) Zašifrování 1 znaku  do proměnné novy_znak vysledek = vysledek & novy_znak Next i

15 Zašifrování 1 znaku  do proměnné novy_znak
kod = Asc(znak) If (kod >= Asc("a")) And (kod <= Asc("z")) Then Pokud je to malé anglické písmeno, šifruji Else novy_znak = znak End If

16 Pokud je to malé anglické písmeno, šifruji
novy_kod = kod + klic If novy_kod > Asc("z") Then novy_kod = novy_kod - 26 End If novy_znak = Chr(novy_kod)

17 Celý program retezec = InputBox("Zadej řetězec pro šifrování", "Cézarova šifra") klic = InputBox("Zadej klíč", "Cézarova šifra") delka = Len(retezec) vysledek = "" For i = 1 To delka znak = Mid(retezec, i, 1) kod = Asc(znak) If (kod >= Asc("a")) And (kod <= Asc("z")) Then novy_kod = kod + klic If novy_kod > Asc("z") Then novy_kod = novy_kod - 26 End If novy_znak = Chr(novy_kod) Else novy_znak = znak vysledek = vysledek & novy_znak Next i blb = MsgBox(vysledek, , "Cézarovská šifra")

18 Vigenérovská šifra Klíč: posloupnost (konečná, ne moc dlouhá) hodnot K1, K2, …, Km z intervalu 0..n-1 (m délka klíče). Šifrování f(a1) = a1 + K1 mod n f(a2) = a2 + K2 mod n f(am) = am + Km mod n f(am+1) = am+1 + K1 mod n ….

19 Praktická realizace Klíč = heslo
Slovo, nebo krátká posloupnost znaků v abecedě.

20 Vigenérovský čtverec A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

21 Příklad Text: rubikon prekrocime zitra rano Heslo: cezar
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Text: rubikon prekrocime zitra rano Heslo: cezar rubikon prekrocime cezarce zarcezarce tyaibqr orvmvnczoi zitra rano zarce zarc yikte qaeq

22 Úkol Upravte program tak, aby šifroval Vigenérovskou šifrou s heslem, které bude zadávat uživatel Jednodušší varianta: heslo bude mít pevnou délku (například 5) Ještě jednodušší varianta: I samotné heslo bude pevné (například cezar)


Stáhnout ppt "Práce s textovými řetězci"

Podobné prezentace


Reklamy Google