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

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

Аватара для D.Y.

Новый участник


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

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


Вот я немного переделал программу добавив проверку регистра тем самым избавив ее от избыточности

Код: Выделить весь код
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Dictionary<char, string> words = new Dictionary<char, string>();

        public Form1()
        {
            InitializeComponent();
            words.Add('а', "a");
            words.Add('б', "b");
            words.Add('в', "v");
            words.Add('г', "g");
            words.Add('д', "d");
            words.Add('е', "e");
            words.Add('ё', "yo");
            words.Add('ж', "zh");
            words.Add('з', "z");
            words.Add('и', "i");
            words.Add('й', "j");
            words.Add('к', "k");
            words.Add('л', "l");
            words.Add('м', "m");
            words.Add('н', "n");
            words.Add('о', "o");
            words.Add('п', "p");
            words.Add('р', "r");
            words.Add('с', "s");
            words.Add('т', "t");
            words.Add('у', "u");
            words.Add('ф', "f");
            words.Add('х', "h");
            words.Add('ц', "c");
            words.Add('ч', "ch");
            words.Add('ш', "sh");
            words.Add('щ', "sch");
            words.Add('ъ', "j");
            words.Add('ы', "i");
            words.Add('ь', "j");
            words.Add('э', "e");
            words.Add('ю', "yu");
            words.Add('я', "ya");

        }

      
      
        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged_1(object sender, EventArgs e)
          {
            string source = textBox1.Text;
            string destiny = null;
            for (int i = 0; i < source.Length; i++)
            {
                if (words.ContainsKey(source[i]))
                    destiny = destiny + words[source[i]];
                else
                    destiny = destiny + source[i];
            }

            System.Text.StringBuilder sb = new System.Text.StringBuilder(destiny);
            for (int j = 0; j < sb.Length; j++)
            {
                if (System.Char.IsLower(sb[j]) == true)
                    sb[j] = System.Char.ToLower(sb[j]);
                else if (System.Char.IsUpper(sb[j]) == true)
                    sb[j] = System.Char.ToUpper(sb[j]);
            }
            string corrected = sb.ToString();


            textBox2.Text = corrected;
        }
    }
}
Сейчас ломаю голову нед обратной транслитерацией точнее над Ж,Ч,Ш,Щ,Я,Ю и тд. Может есть идеи.

Отправлено: 22:28, 06-05-2010 | #10