Множественная замена

Do1phin

Client
Регистрация
10.07.2015
Сообщения
16
Благодарностей
0
Баллы
3
Ребята, как произвести множественную замену криллицы на схожую латиницу и наоборот, только не кучей действий по очереди, а одним действием, за раз? Нужно заменить русские А на английские A и в этот же момент менять и английские A на русские А.
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

тройную замену делайте
 

Do1phin

Client
Регистрация
10.07.2015
Сообщения
16
Благодарностей
0
Баллы
3

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
я не знаю, как одновременно это сделать, но это можно сделать в несколько шагов
 

Do1phin

Client
Регистрация
10.07.2015
Сообщения
16
Благодарностей
0
Баллы
3
я не знаю, как одновременно это сделать, но это можно сделать в несколько шагов
Шаг 1: Меняем русскую А на английскую А.
Шаг 2: Меняем английскую А на русскую А.

Проблема в том, что при втором шаге заменятся те буквы, которые у нас получились после выполнения шага 1. Вот и нужно сделать это одновременно, чтобы заменились и русские и английские буквы.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
Шаг 1: Меняем русскую А на английскую А.
Шаг 2: Меняем английскую А на русскую А.

Проблема в том, что при втором шаге заменятся те буквы, которые у нас получились после выполнения шага 1. Вот и нужно сделать это одновременно, чтобы заменились и русские и английские буквы.
поэтому нужно 3 шага.
шаг 1. меняем англ А на шаблон, например #A#
шаг 2. Меняем рус А на англ А
шаг 3. Меняем шаблон на рус А
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113

Do1phin

Client
Регистрация
10.07.2015
Сообщения
16
Благодарностей
0
Баллы
3
поэтому нужно 3 шага.
шаг 1. меняем англ А на шаблон, например #A#
шаг 2. Меняем рус А на англ А
шаг 3. Меняем шаблон на рус А
понял, да, это работает, только получится такое количество экшенов, ужас) оставлю на самый крайний случай, если не получится уже никаким другим способом это реализовать. Спасибо!:df:


Через C# код.
Код:
string str = project.Variables["text"].Value;
return str.Replace("a", "A").Replace("A", "a");
Код то работает, но получается что выполняется сначала эта часть
Код:
return str.Replace("a", "A").
а затем уже вторая
Код:
Replace("A", "a");
и этот второй replace меняет назад то, что мы поменяли в первом, так что как-то нужно сделать замены эти за один заход.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
Код:
return str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
 
  • Спасибо
Реакции: yriy158, Do1phin и NoN

Do1phin

Client
Регистрация
10.07.2015
Сообщения
16
Благодарностей
0
Баллы
3
Код:
return str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
Вот это работает отлично, а в чем может быть проблема, пытаюсь добавить туда еще несколько букв других, по аналогии с буквой A, но почему-то меняет только ее, а остальные строки кода будто не видит вообще. Буквы кириллицы и латиницы не путаю, с ними точно все ок.

Код:
string str = project.Variables["text"].Value;
return str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
return str.Replace("В", "#В#").Replace("B", "В").Replace("#В#", "B");
return str.Replace("С", "#С#").Replace("C", "С").Replace("#С#", "C");
return str.Replace("Е", "#Е#").Replace("E", "Е").Replace("#Е#", "E");
return str.Replace("Н", "#Н#").Replace("H", "Н").Replace("#Н#", "H");
return str.Replace("К", "#К#").Replace("K", "К").Replace("#К#", "K");
return str.Replace("О", "#О#").Replace("O", "О").Replace("#О#", "O");
return str.Replace("Т", "#Т#").Replace("T", "Т").Replace("#Т#", "T");
return str.Replace("Р", "#Р#").Replace("P", "Р").Replace("#Р#", "P");
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
Вот это работает отлично, а в чем может быть проблема, пытаюсь добавить туда еще несколько букв других, по аналогии с буквой A, но почему-то меняет только ее, а остальные строки кода будто не видит вообще. Буквы кириллицы и латиницы не путаю, с ними точно все ок.

Код:
string str = project.Variables["text"].Value;
return str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
return str.Replace("В", "#В#").Replace("B", "В").Replace("#В#", "B");
return str.Replace("С", "#С#").Replace("C", "С").Replace("#С#", "C");
return str.Replace("Е", "#Е#").Replace("E", "Е").Replace("#Е#", "E");
return str.Replace("Н", "#Н#").Replace("H", "Н").Replace("#Н#", "H");
return str.Replace("К", "#К#").Replace("K", "К").Replace("#К#", "K");
return str.Replace("О", "#О#").Replace("O", "О").Replace("#О#", "O");
return str.Replace("Т", "#Т#").Replace("T", "Т").Replace("#Т#", "T");
return str.Replace("Р", "#Р#").Replace("P", "Р").Replace("#Р#", "P");
срабатывает 1й ретурн
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
Код:
string str = project.Variables["text"].Value;
str = str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
str = str.Replace("В", "#В#").Replace("B", "В").Replace("#В#", "B");
str = str.Replace("С", "#С#").Replace("C", "С").Replace("#С#", "C");
str = str.Replace("Е", "#Е#").Replace("E", "Е").Replace("#Е#", "E");
str = str.Replace("Н", "#Н#").Replace("H", "Н").Replace("#Н#", "H");
str = str.Replace("К", "#К#").Replace("K", "К").Replace("#К#", "K");
str = str.Replace("О", "#О#").Replace("O", "О").Replace("#О#", "O");
str = str.Replace("Т", "#Т#").Replace("T", "Т").Replace("#Т#", "T");
str = str.Replace("Р", "#Р#").Replace("P", "Р").Replace("#Р#", "P");
return str;
 
  • Спасибо
Реакции: Do1phin

Do1phin

Client
Регистрация
10.07.2015
Сообщения
16
Благодарностей
0
Баллы
3
Код:
string str = project.Variables["text"].Value;
str = str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
str = str.Replace("В", "#В#").Replace("B", "В").Replace("#В#", "B");
str = str.Replace("С", "#С#").Replace("C", "С").Replace("#С#", "C");
str = str.Replace("Е", "#Е#").Replace("E", "Е").Replace("#Е#", "E");
str = str.Replace("Н", "#Н#").Replace("H", "Н").Replace("#Н#", "H");
str = str.Replace("К", "#К#").Replace("K", "К").Replace("#К#", "K");
str = str.Replace("О", "#О#").Replace("O", "О").Replace("#О#", "O");
str = str.Replace("Т", "#Т#").Replace("T", "Т").Replace("#Т#", "T");
str = str.Replace("Р", "#Р#").Replace("P", "Р").Replace("#Р#", "P");
return str;

Большое спасибо! Все работает идеально!):ay:
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

все как я и говорил
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

Прям Кэп!
Из серии - Как сделать Множественную замену - Делайте множественную замену, чего голову ломать )
я не говорил множественную я говорил тройную это совсемразные вещи
 

clon4444

Client
Регистрация
27.10.2016
Сообщения
81
Благодарностей
9
Баллы
8
Все прям как в жизни, кто то просто говорит, а кто то делает. большая разница
 

Кто просматривает тему: (Всего: 4, Пользователи: 0, Гости: 4)