:: Visual Foxpro, Foxpro for DOS
Латинская транслитерация русских букв
story

Сообщений: 166
Откуда: Новосибирск
Дата регистрации: 24.08.2006
Нет ли у кого нибудь алгоритма транслитерации русских букв в латинские?
Ratings: 0 negative/0 positive
Re: Латинская транслитерация русских букв
reware

Сообщений: 4116
Откуда: Хабаровск
Дата регистрации: 21.07.2008
story
Нет ли у кого нибудь алгоритма транслитерации русских букв в латинские?
Особого алгоритма imho не требуется. Достаточно создать двухмерный массив. В первой колонке буквы кириллицы, во второй соответствующие им сочетания латинских букв. Правила отображения русских букв с помощью латинских (ГОСТ 16876-71) показаны на www.langust.ru.
Ratings: 0 negative/0 positive
Re: Латинская транслитерация русских букв
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
В приницпе хватит и одномерного массива, плюс небольшая логика по переводу кода символа (кириллицы) в индекс в этом массиве - ну с учётом строчных/заглавных конечно...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Латинская транслитерация русских букв
reware

Сообщений: 4116
Откуда: Хабаровск
Дата регистрации: 21.07.2008
PARAMETERS victim
str_rus=[а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я]
str_lat=[a,b,v,g,d,e,jo,zh,z,i,jj,k,l,m,n,o,p,r,s,t,u,f,kh,c,ch,sh,shh,",y,',eh,ju,ja]
allrus=GETWORDCOUNT(str_rus,",")
FOR i=1 TO allrus
victim=STRTRAN(victim,GETWORDNUM(str_rus,i,","),GETWORDNUM(str_lat,i,","))
victim=STRTRAN(victim,UPPER(GETWORDNUM(str_rus,i,",")),UPPER(GETWORDNUM(str_lat,i,",")))
NEXT
RETURN victim



Исправлено 1 раз(а). Последнее : reware, 13.10.09 16:26
Ratings: 0 negative/0 positive
Re: Латинская транслитерация русских букв
Yurko-i
Автор

Сообщений: 32
Дата регистрации: 09.10.2007
forum.foxclub.ru
Ratings: 0 negative/0 positive
Re: Латинская транслитерация русских букв
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
У каждой организации свой набор символов для транслитерации, кроме всего...
PROCEDURE translit
PARAMETERS cString
cString = ALLTRIM(UPPER(cString))
LOCAL aTrans(33,2), i
aTrans(1, 1)='А'
aTrans(2, 1)='Б'
aTrans(3, 1)='В'
aTrans(4, 1)='Г'
aTrans(5, 1)='Д'
aTrans(6, 1)='Е'
aTrans(7, 1)='Ж'
aTrans(8, 1)='З'
aTrans(9, 1)='И'
aTrans(10,1)='Й'
aTrans(11,1)='К'
aTrans(12,1)='Л'
aTrans(13,1)='М'
aTrans(14,1)='Н'
aTrans(15,1)='О'
aTrans(16,1)='П'
aTrans(17,1)='Р'
aTrans(18,1)='С'
aTrans(19,1)='Т'
aTrans(20,1)='У'
aTrans(21,1)='Ф'
aTrans(22,1)='Х'
aTrans(23,1)='Ц'
aTrans(24,1)='Ч'
aTrans(25,1)='Ш'
aTrans(26,1)='Щ'
aTrans(27,1)='Ъ'
aTrans(28,1)='Ы'
aTrans(29,1)='Ь'
aTrans(30,1)='Э'
aTrans(31,1)='Ю'
aTrans(32,1)='Я'
aTrans(33,1)='Ё'
aTrans(1, 2)='a'
aTrans(2, 2)='b'
aTrans(3, 2)='v'
aTrans(4, 2)='g'
aTrans(5, 2)='d'
aTrans(6, 2)='e'
aTrans(7, 2)='zh'
aTrans(8, 2)='z'
aTrans(9, 2)='i'
aTrans(10,2)='i'
aTrans(11,2)='k'
aTrans(12,2)='l'
aTrans(13,2)='m'
aTrans(14,2)='n'
aTrans(15,2)='o'
aTrans(16,2)='p'
aTrans(17,2)='r'
aTrans(18,2)='s'
aTrans(19,2)='t'
aTrans(20,2)='u'
aTrans(21,2)='f'
aTrans(22,2)='h'
aTrans(23,2)='ts'
aTrans(24,2)='ch'
aTrans(25,2)='sh'
aTrans(26,2)='sch'
aTrans(27,2)='j'
aTrans(28,2)='y'
aTrans(29,2)='j'
aTrans(30,2)='e'
aTrans(31,2)='yu'
aTrans(32,2)='ya'
aTrans(33,2)='e'
FOR i=1 TO 33
cString = STRTRAN(cString,aTrans(i,1),aTrans(i,2))
ENDFOR
cString = STRTRAN(cString,'.','_')
cString = STRTRAN(cString,' ','_')
RETURN cString
ENDPROC


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 20 (Гостей: 20)

© 2000-2024 Fox Club 
Яндекс.Метрика