LeopoLius
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Привет предо мной стоит задача написания шифрования(дешифрования) методом моноалфавитной замены. Есть проблемы в дешифровке, а также в Считывания из файла и записи в новый файл. Начал писать в Microsoft Visual Studio 2008 на VB 2008, вот что сейчас есть:ЁЁЁ Код: Public Class Form1 Dim i As Integer, j As Integer, intStrLen As Integer 'i,j, длина строки Dim intKey1 As Integer, intKey2 As Integer 'ключи Dim strAlph As String Dim strTxtIn As String, strTxtOut As String 'входной и выходной текст Dim strAsymb As String, strBsymb As String, intTempA As Integer, intTempB As Integer 'текущий символ Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click txtOut.Clear() strTxtIn = txtIn.Text intStrLen = Len(strTxtIn) 'определяем длину текста intKey1 = Key1.Text intKey2 = Key2.Text strAlph = ("абвгдежзийклмнопрстуфхцчшщъыьэюя ,.;:123456789") strTxtOut = "" For i = 1 To intStrLen strAsymb = Mid(strTxtIn, i, 1) 'берем i'ый символ из строки intTempA = InStr(strAlph, strAsymb) 'определяем позицию символа i в алфавите intTempB = ((intKey1 * intTempA) + intKey2) Mod (46) 'шифруем позицию=) If intTempB = 0 Then intTempB = 46 strBsymb = Mid(strAlph, intTempB, 1) 'берем символ из алфавита с новой позиции strTxtOut = strTxtOut + strBsymb Next txtOut.Text = strTxtOut End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click txtOut.Clear() strTxtIn = txtIn.Text intStrLen = Len(strTxtIn) 'определяем длину текста intKey1 = 1 intKey2 = 1 intKey1 = Key1.Text intKey2 = Key2.Text strAlph = ("абвгдежзийклмнопрстуфхцчшщъыьэюя ,.;:123456789") strTxtOut = "" For i = 1 To intStrLen strBsymb = Mid(strTxtIn, i, 1) 'берем i'ый символ из строки intTempB = InStr(strAlph, strBsymb) 'определяем позицию символа i в алфавите If intTempB < intKey2 Then intTempB = intTempB + 33 intTempA = ((intTempB - intKey2) / intKey1) Mod (46) 'дешифруем позицию=) If intTempA = 0 Then intTempA = 46 strAsymb = Mid(strAlph, intTempA, 1) 'берем символ из алфавита с новой позиции strTxtOut = strTxtOut + strAsymb Next txtOut.Text = strTxtOut End Sub Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk End Sub Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click 'взять текст из файла OpenFileDialog1.Filter = "*.txt|*.txt" OpenFileDialog1.ShowDialog() Dim tt As New String(OpenFileDialog1.FileName) txtIn.Text = tt Dim ff As Integer ff = FreeFile() FileOpen(FileNumber:=ff, FileName:=tt, Mode:=OpenMode.Input, Access:=OpenAccess.Read, Share:=OpenShare.LockWrite) Dim zext As String FileGet(ff, zext) FileClose(ff) txtIn.Text = zext End Sub Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click SaveFileDialog1.Filter = "*.txt|*.txt" SaveFileDialog1.ShowDialog() Dim SF As New String(SaveFileDialog1.FileName) 'ячейка где находится путь с именем файла End Sub Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk End Sub End Class | ЁЁЁ, может кто видит какие-нить ошибки или знает как помоч с задачей, или просто подскажет что-нибудь, прошу.. [code][/code] | Всего записей: 2 | Зарегистр. 12-11-2009 | Отправлено: 21:10 12-11-2009 | Исправлено: LeopoLius, 21:13 12-11-2009 |
|