Imports System.IO

Public Class Form1

    Private Sub SaveAsItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveAsItem.Click
        Dim znak As Char
        Dim kodSifrovani As String
        Dim i, znakuVSouboru, kod As Short
        Dim proudProZapis As StreamWriter = Nothing

        SaveFileDialog1.Filter = "Textové soubory (*.txt)|*.txt"
        If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
            Try
                kodSifrovani = InputBox("Zadejte kód pro šifrování")
                'osetreni pripadu klepnuti na tlacitko Storno
                If kodSifrovani = "" Then Exit Sub
                'ulozeni textu se zadanym schematem sifrovani
                kod = CShort(kodSifrovani)
                znakuVSouboru = TextovePole1.Text.Length
                proudProZapis = My.Computer.FileSystem.OpenTextFileWriter( _
                    SaveFileDialog1.FileName, False)
                For i = 0 To znakuVSouboru - 1
                    znak = TextovePole1.Text.Substring(i, 1)
                    'prevod na cislo pomoci funkce Asc
                    'pote sifrovani pomoci Xor
                    'a ukladani do souboru
                    proudProZapis.Write(Asc(znak) Xor kod)
                    'oddeleni jednotlivych cisel mezerami
                    proudProZapis.Write(" ")
                Next
                CloseItem.Enabled = True
            Catch ex As Exception
                MsgBox("Vyskytla se chyba." & vbCrLf & ex.Message)
            Finally
                If proudProZapis IsNot Nothing Then
                    proudProZapis.Close()
                End If
            End Try
        End If
    End Sub

    Private Sub InsertDateItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertDateItem.Click
        TextovePole1.Text = DateString & vbCrLf & TextovePole1.Text
        'odstraneni vyberu textu
        TextovePole1.Select(0, 0)
    End Sub

    Private Sub ExitItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitItem.Click
        End
    End Sub

    Private Sub OpenItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenItem.Click
        Dim celyText As String
        Dim i As Short
        Dim znak As Char
        Dim kodSifrovani As String
        Dim kod, cislo As Short
        Dim poleCisla() As String
        Dim desifrovanyText As String = ""

        OpenFileDialog1.Filter = "Textové soubory (*.txt)|*.txt"
        'zobrazeni dialogu Otevrit pro otevreni souboru
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            'otevreni souboru a zachyceni veskerych pripadnych
            'chyb pomoci zpracovatele chyb
            Try
                kodSifrovani = InputBox("Zadejte kód pro dešifrování")
                'osetreni pripadu klepnuti na tlacitko Storno
                If kodSifrovani = "" Then Exit Sub
                kod = CShort(kodSifrovani)
                'cteni zasifrovanych cisel
                celyText = My.Computer.FileSystem.ReadAllText(OpenFileDialog1.FileName)
                celyText = celyText.Trim
                'rozdeleni cisel do pole, pricemz oddelovacem je mezera
                poleCisla = celyText.Split(" ")
                'smycka pres cele pole
                For i = 0 To poleCisla.Length - 1
                    'prevod retezce na cislo
                    cislo = CShort(poleCisla(i))
                    'prevod pomoci funkce Xor
                    znak = Chr(cislo Xor kod)
                    'a sestaveni desifovaneho textu
                    desifrovanyText = desifrovanyText & znak
                Next
                'nasleduje zobrazeni desifrovaneho textu
                TextovePole1.Text = desifrovanyText
                Popisek1.Text = OpenFileDialog1.FileName
                'odstraneni vyberu textu
                TextovePole1.Select(0, 0)
                'zobrazeni ukazatele v textovem poli
                TextovePole1.Enabled = True
                'povoleni prikazu Zavrit v nabidce Soubor
                CloseItem.Enabled = True
                'zakaz prikazu Otevrit v nabidce Soubor
                OpenItem.Enabled = False
            Catch ex As Exception
                MsgBox("Vyskytla se chyba." & vbCrLf & ex.Message)
            End Try
        End If
    End Sub

    Private Sub CloseItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CloseItem.Click
        'vyprazdneni textoveho pole
        TextovePole1.Text = ""
        Popisek1.Text = "Pomocí příkazu Otevřít nabídky Soubor načtěte textový soubor."
        'zakaz prikazu Zavrit v nabidce Soubor
        CloseItem.Enabled = False
        'povoleni prikazu Otevrit v nabidce Soubor
        OpenItem.Enabled = True
    End Sub

End Class
