| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Доброго всем времени суток, Уважаемые знатоки, не подскажете, есть ли в аксапте класс, переводящий русские символы в английские?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Думаю что нет  
		
		
		
		
		
		
		
	  Но написать самому такой класс плевое дело...
		 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			писать действительно 10 минут от силы...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ГОСТ-у 7.79-2000 и switch case вам в помощь
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	![]() В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Программатор 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Сенбернар 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Погорячился, IMHO. Это с какой же скоростью по клаве щелкать надо?  
		
		
		
		
		
		
			 
		
				__________________ 
		
		
		
		
	Best Regards, Roman  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			23 секунды на копи паста аглицких букав, + 9 минут 37 секунд на оформление и подстановку правильных руских букв .
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Russland
			 
 
			ГОСТ-у 7.79-2000 и switch case вам в помощь 
		
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++: static str translit(str value, boolean letteronly = false) { container rus = ['а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я']; container lat = ['a','b','v','g','d','e','jo','zh','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','c','ch','sh','sch','','y','','e','ju','ja']; int i, n; str letter; str ret; ; for (i = 1;i<=strlen(value);i++) { letter = strlwr(substr(value,i,1)); n = confind(rus,letter); ret += n>0 ? conpeek(lat,n) : letter; } return letteronly ? strkeep(ret,'abcdefghijklmnopqrstuvwxyz0123456789') : ret; }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: EVGL (3), DreamCreator (3), G.Menshikh (1), Antoncheg (1). | |
| 
			
			 | 
		#11 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ВООО
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Lucky13
			 
 
			X++: static str translit(str value, boolean letteronly = false) { container rus = ['а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я']; container lat = ['a','b','v','g','d','e','jo','zh','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','c','ch','sh','sch','','y','','e','ju','ja']; int i, n; str letter; str ret; ; for (i = 1;i<=strlen(value);i++) { letter = strlwr(substr(value,i,1)); n = confind(rus,letter); ret += n>0 ? conpeek(lat,n) : letter; } return letteronly ? strkeep(ret,'abcdefghijklmnopqrstuvwxyz0123456789') : ret; }  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А как с регистром же быть? Регистр то не ловится чето совсем?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Так как все сравнения по умолчанию регистронезависимые можно не делать strLwr: 
		
		
		
		
		
		
		
		
			X++: letter = strlwr(substr(value,i,1)); X++: str makeTheSameCase(str _letterToCompare, str _letterToConvert) { return (strCmp(_letterToCompare, strUpr(_letterToCompare))==0) ? str2Capital( letterToConvert) : letterToConvert } ... ret += n>0 ? makeTheSameCase(letter, conpeek(lat,n)) : letter; Последний раз редактировалось belugin; 11.04.2016 в 20:42. Причина: str2capital  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Владимир Максимов (2), S.Kuskov (2). | |
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если в замене больше одного символа, то к верхнему регистру наверное нужно приводить только первый символ а не все.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: belugin (3). | |
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Fixed
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Транслит с учетом регистра
			 
			
			Добрый день. 
		
		
		
		
		
		
			Немного доработал метод, который преобразует строку в транслит с учетом регистра. Может кому-нибудь пригодится. X++: public static str translit( str _value, boolean _letteronly = false) { container rus, lat, rusLower = ['а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'], latLower = ['a','b','v','g','d','e','yo','zh','z','i','y','k','l','m','n','o','p','r','s','t','u','f','h','ts','ch','sh','shch','','y','','e','yu','ya'], rusUpper = ['А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я'], latUpper = ['A','B','V','G','D','E','YO','ZH','Z','I','Y','K','L','M','N','O','P','R','S','T','U','F','H','TS','CH','SH','SHCH','','Y','','E','YU','YA']; int i, n; str letter, ret; boolean isLower; System.Boolean isLowerNet; System.String letterNet; System.Char charNet; ; for (i=1; i<=strlen(_value); i++) { letter = substr(_value, i, 1); letterNet = letter; charNet = letterNet.get_Chars(0); isLowerNet = System.Char::IsLower(charNet); isLower = isLowerNet; if (isLower) { rus = rusLower; lat = latLower; } else { rus = rusUpper; lat = latUpper; } n = confind(rus, letter); ret += n > 0 ? conpeek(lat, n) : letter; } return _letteronly ? strkeep(ret,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') : ret; } 
				__________________ 
		
		
		
		
	С уважением, Александр.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Logger (5), Weez (1). | |