Имя: Пароль:
1C
1С v8
задачка на размышление
0 mrd2006
 
19.06.12
17:08
Имеется произвольная строка символов (без пробелов). Интересно можно ли придумать универсальный алгоритм проверки соответствия двух строк на равенство. Проблема в том, что строка может быть набрана произвольно, например "апрель" символ "а" может быть набран как на русском, так и на латинском, равно как и символы "р" и "е" и т.д.
1 Нуф-Нуф
 
19.06.12
17:09
на мисте реализовано
2 mikecool
 
19.06.12
17:09
привести к НРег, сравнить посимвольно
3 Нуф-Нуф
 
19.06.12
17:09
на мисте реализованоо
4 Irbis
 
19.06.12
17:09
Посимвольно сравнивать до первого несовпадения предлагали?
5 quest
 
19.06.12
17:09
у гугля спросить?
6 xenos
 
19.06.12
17:13
Заменяешь в строках все латинские на соответствующие русские или наоборот. Сравниваешь.
7 Фокусник
 
19.06.12
17:13
(0) я делал так: обе строки приводил к одному виду (т.е. заменял в них лат.а на рус.а, лат.о на рус.о и т.д.), а потом сравнивал уже приведенные строки.

привести можно так:

Функция ПривестиСтроку(стр)

нов_стр = Нрег(стр);  //если регистр важен, то убрать Нрег

нов_стр = СтрЗаменить(нов_стр, "a", "а");  //"a" - лат., "а"-рус.
нов_стр = СтрЗаменить(нов_стр, "o", "о");  //"o" - лат., "о"-рус.

//далее все варианты замены

Возврат нов_стр;

КонецФункции
8 mrd2006
 
19.06.12
17:25
(7) спасибки, тоже вариант