Главная страница
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.029 c
15-1175158476
Альберт
2007-03-29 12:54
2007.04.29
Уменьшить размер EXE


15-1175603363
cosinus
2007-04-03 16:29
2007.04.29
Формат .job файла (файл планировщика заданий Windows)


2-1176132863
PAN
2007-04-09 19:34
2007.04.29
Чтение инфы из файла своей программы


2-1176197360
npu3pak
2007-04-10 13:29
2007.04.29
Как райионально добавлять данные в базу Access?


2-1175845494
worldmen
2007-04-06 11:44
2007.04.29
Работа с Excel (заголовок файла)