Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.29;
Скачать: CL | DM;

Вниз

Перевести буквы на другой язык   Найти похожие ветки 

 
arturich ©   (2007-03-28 23:18) [0]

Здравствуйте, как перевести некий текст на русском из, скажем, edit1, в транслит в edit2? Есть ли примеры в интернете с исходниками? Спасибо большое


 
RASkov   (2007-03-28 23:23) [1]

У каждой "Буквы" есть свой код, используя его можешь сделать процедуры перевода во что хочешь...


 
RASkov   (2007-03-28 23:34) [2]

Или вот....
Не совсем красиво, но для начала можно и так можно попробывать

function RusCharTranslitToEng(const S: Char): String;
begin
 Result:=S;
 case S of
  ........
  "Б": Result:="B";
  "б": Result:="b";
  ........
  "ч": Result:="ch";
  "Ч": Result:="Ch";
  ..........
 end;
end;

function RusTranslitToEng(const S: String): String;
begin
 Result:="";
 for N:= 1 to Length(S) do Result:=Result+RusCharTranslitToEng(S[N]);
end;


 
Desdechado ©   (2007-03-29 11:58) [3]

Проще 2 массива соответствий.


 
arturich ©   (2007-04-07 16:49) [4]

Спасибо!

Подскажите, пожалуйста, какие ещё могут быть варианты?


 
{RASkov}   (2007-04-08 05:54) [5]

> [4] arturich ©   (07.04.07 16:49)

Если одному русскому символу может соответствовать более одного символа другого алфавита то вариантов больше врядли будет....

Один раз опиши два массива и все тут... или даже одного массива хватит.
Например:
TransChars: array [192..255] of String = ("A","B","V","G","D","E","J","Z",..."yu","ya"); Букву Ёё обработаешь отдельно в самой процедуре перевода.
И
function RusCharTranslit(const Ch: Char): String;
begin
 Result:=Ch;
 case ORD(Ch) of
  168: Result:="E";  //Ch=Ё
  184: Result:="e";  //Ch=ё
 end;
 if ORD(Ch)<192 then Exit;
 Result:=TransChars[ORD(Ch)];
end;


 
Desdechado ©   (2007-04-10 11:17) [6]

> Один раз опиши два массива и все тут... или даже одного массива хватит.
Если надо в обе стороны, то одного не хватит.
Например, "PH"->"Ф", но "Ф"->"F".



Страницы: 1 вся ветка

Текущий архив: 2007.04.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
3-1170831533
Ламерок
2007-02-07 09:58
2007.04.29
Как вставить картинку в таблицу базы данных?


2-1176275300
jeen
2007-04-11 11:08
2007.04.29
Как распечатать содержимое фрейма ?


15-1175328227
VirEx
2007-03-31 12:03
2007.04.29
сжатие траффика, как настроить MirandaIM (ICQ,IRC,MRA) для CProxy


2-1176124586
Irishka
2007-04-09 17:16
2007.04.29
программа возведения натурального числа в квадрат


15-1175567355
Slider007
2007-04-03 06:29
2007.04.29
С днем рождения ! 3 апреля