Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


D.Y., в предыдущем посте во втором выборе букв имел ввиду следующий выбор (какую букву оставить), при повороте словаря
.Add("Y", "Й") или .Add("Y", "Ы")
.Add("'", "Ъ") или .Add("'", "Ь")

Код: Выделить весь код
        private void textBox3_TextChanged(object sender, EventArgs e)
        {
            string InputStr = textBox3.Text, BufStr = null, destiny = null;
            int i = 0;
            for (i = 0; i < InputStr.Length - 3; i++)
            {
                BufStr = null;
                BufStr = BufStr + InputStr[i] + InputStr[i + 1] + InputStr[i + 2]; 
                if (words1.ContainsKey(BufStr))
                {
                    destiny = destiny + words1[BufStr];
                    i = i + 2;
                    continue;
                }
                BufStr = null;
                BufStr = BufStr + InputStr[i] + InputStr[i + 1];
                if (words1.ContainsKey(BufStr))
                {
                    destiny = destiny + words1[BufStr];
                    i = i + 1;
                    continue;
                }
                BufStr = null;
                BufStr = BufStr + InputStr[i];
                if (words1.ContainsKey(BufStr))
                {
                    destiny = destiny + words1[BufStr];
                    continue;
                }
                destiny = destiny + BufStr;
            }
            if (i == InputStr.Length - 3)
            {
                BufStr = null;
                BufStr = BufStr + InputStr[i] + InputStr[i + 1] + InputStr[i + 2];
                if (words1.ContainsKey(BufStr))
                {
                    destiny = destiny + words1[BufStr];
                    i = i + 3;
                }
            }
            if (i == InputStr.Length - 2)
            {
                BufStr = null;
                BufStr = BufStr + InputStr[i] + InputStr[i + 1];
                if (words1.ContainsKey(BufStr))
                {
                    destiny = destiny + words1[BufStr];
                    i = i + 2;
                }
            }
            while (i < InputStr.Length)
            {
                BufStr = null;
                BufStr = BufStr + InputStr[i];
                if (words1.ContainsKey(BufStr))
                    destiny = destiny + words1[BufStr];
                else
                    destiny = destiny + BufStr;
               i = i + 1;
            }
            textBox4.Text = destiny;
        }
Можно, но С# знаю как соседа VB.NET по .NET, так что код лучше проверить на предмет соответствия традициям языка.
Например в VB.NET допустимо собирать строку с символов другой, в C# первоначально этой же строке нужно присвоить саму себя, а потом уже символы другой строки. По этому присуствует обнуление строки BufStr (BufStr = null;).
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:15, 07-05-2010 | #13