- Сообщения
- 2.141
- Реакции
- 2.536
Создадим полный англо-русский переводчик, на C# который будет весть не более 10 кб. Как же уместиь такое огромное кол-во слов в 10 кб? Очень просто, всю нагрузку на себя возьмет
В статье будут рассмотрены
Приступим...
Шаг 1 (Подготовительный)
Кидаем на форму button, и два textbox-a
Создаем переменную для хранения слова которое будем переводить и присваеваем ей текст из textbox-a
Шаг 2 (Отправка запроса, сохранение ответа)
Выполняем HTTP запрос
Принимаем ответ
Ложим в ответ поток, затем сохраняем в response
Шаг 3 (Замена символов в строке)
Метод Replace заменяет в строке значение первого аргумента второй
Это я сделал что бы дальше было удобнее работать со строками
Шаг 4 (Регулярные выражения)
создаем переменную для храрнения конечного результата
Создаем регулярное выражение которое будет искать переведенно слово
оно находится в таком контексте: y45yyr1112СЛОВО2y56egyrtyrt
Ниже предствалнен синтаксис регулярных выражений который мы применим в нашем выражении, для изучения полного синтаксиса смотрите msdn
Класс знаков \w cоответствует любому алфавитно-цифровому знаку.
Квантор * Соответствует предыдущему элементу ноль или более раз
Конструкция группирования (выражение) выделяет соответствующую часть выражения
Шаг 5 (Завершающий)
Отрезаем от ответа ненужный мусор
Отрезаем 4 символа от начала строки
Отрезаем последний символ
И наконец готовый ответ ложим в textbox
--------
tnx for reading, hope I help
Скрытое содержимое доступно для зарегистрированных пользователей!
.В статье будут рассмотрены
- регулярные выражения
- работа с сетью
- некоторые методы класса string для форматирования строк
Приступим...
Шаг 1 (Подготовительный)
Кидаем на форму button, и два textbox-a
Создаем переменную для хранения слова которое будем переводить и присваеваем ей текст из textbox-a
Код:
string wordToTranslate = textBox1.Text;
Шаг 2 (Отправка запроса, сохранение ответа)
Выполняем HTTP запрос
Код:
HttpWebRequest wrGETURL = (HttpWebRequest)WebRequest.Create("http://translate.google.com.ua/translate_a/t?client=t&text=" + wordToTranslate + "&hl=ru&sl=en&tl=ru&ie=UTF-8&oe=UTF-8&multires=1&prev=btn&ssel=0&tsel=0&sc=1");
Принимаем ответ
Код:
HttpWebResponse vkHttpWebResponse = (HttpWebResponse)wrGETURL.GetResponse();
Ложим в ответ поток, затем сохраняем в response
Код:
StreamReader vkStreamReader = new StreamReader(vkHttpWebResponse.GetResponseStream());
string response = vkStreamReader.ReadToEnd();
Шаг 3 (Замена символов в строке)
Метод Replace заменяет в строке значение первого аргумента второй
Это я сделал что бы дальше было удобнее работать со строками
Код:
response = response.Replace('[', '1');
response = response.Replace('"', '2');
Шаг 4 (Регулярные выражения)
создаем переменную для храрнения конечного результата
Код:
string transText;
Создаем регулярное выражение которое будет искать переведенно слово
оно находится в таком контексте: y45yyr1112СЛОВО2y56egyrtyrt
Ниже предствалнен синтаксис регулярных выражений который мы применим в нашем выражении, для изучения полного синтаксиса смотрите msdn
Класс знаков \w cоответствует любому алфавитно-цифровому знаку.
Квантор * Соответствует предыдущему элементу ноль или более раз
Конструкция группирования (выражение) выделяет соответствующую часть выражения
Код:
Regex transTextRegex = new Regex(@"(1112)(\w*)(2)");
Match transTextMatch = transTextRegex.Match(response);
transText = transTextMatch.Value;
Шаг 5 (Завершающий)
Отрезаем от ответа ненужный мусор
Отрезаем 4 символа от начала строки
Код:
transText = transText.Remove(0, 4);
Отрезаем последний символ
Код:
transText = transText.Remove(transText.Length - 1, 1);
И наконец готовый ответ ложим в textbox
Код:
textBox2.Text = transText;
--------
tnx for reading, hope I help