Главная страница
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.47 MB
Время: 0.088 c
2-1176299333
BatonPolnii
2007-04-11 17:48
2007.04.29
Округление чисел


6-1162540138
sfn
2006-11-03 10:48
2007.04.29
ICS — TWSocket


3-1170483255
WebSqlNeederr
2007-02-03 09:14
2007.04.29
Как работать из Делфи с Microsoft Access ?


15-1175260410
Reaktor
2007-03-30 17:13
2007.04.29
Если свич воткнуть в свич


15-1175760193
ocean
2007-04-05 12:03
2007.04.29
Переписать DVD, подавив один из звуковых каналов