Здравствуйте, Гость
Пятница, 24.11.2017, 02:27
Главная Главная страница форума Регистрация Вход
Новые сообщения Участники форума Правила форума Поиск
Страница 1 из 11
Модератор форума: stalker, Ekz 
Форум » Все о Delphi » Начинающим » Перевод из латиницы в кириллицу... (как реализовать?)
Перевод из латиницы в кириллицу...
XakerДата: Понедельник, 19.04.2010, 12:19 | Сообщение # 1
Ранг 4
Группа: Проверенные
Сообщений: 83
Награды: 1
Репутация: 0
Статус: Offline
Всем Привет...собственно подскажите как решить вопрос в названии темы....

Пример: Laura = Лаура

 
AdminДата: Понедельник, 19.04.2010, 13:58 | Сообщение # 2
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
Составляй массив соотношений.
А Б В Г Д ....
A B V G D ....
Ищи нужный символ и под ним смотри какой получится.


Не оказываю помощь через личные сообщения и ICQ
 
XakerДата: Понедельник, 19.04.2010, 15:46 | Сообщение # 3
Ранг 4
Группа: Проверенные
Сообщений: 83
Награды: 1
Репутация: 0
Статус: Offline
Admin, взял масив отсюда и делаю так...но никакого перевода не осуществляется вообще...

Code
function TForm1.ConvertText(Letter: String): String;
var
   i : Integer;
begin
   for i := 0 to 65 do begin
     if Letter = ES[i] then
       Letter := RS[i];
   end;
Result := Letter;
end;
 
AdminДата: Вторник, 20.04.2010, 14:29 | Сообщение # 4
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
вот ты подаешь в качестве параметра в функцию строку. Потом в цикле сравниваешь ЭТУ СТРОКУ с СИМВОЛОМ из массива ES. В строке несколько символов, и они не будут никогда равны символу

Вообще массив ES нужно делать двумерным, в первой строке русские во второй английские (или наоборот, как хочешь) символы.
Пробегать всю строку посимвольно. Строка получается это массив символов, т.е.

Code
Letter: String
...
for i := 1 to length(Letter) do
begin
       ch:= Letter[i]; // получаем проверяемый символ
      // а тут уже сравнение этого символа со всеми символами из массива ES.
      // В случае совпадения, смотри символ в массиве под/над найденым (в зависимости от того как сделаешь этот массив, т.е. где будут русские а где английские символы)

      // нашел, и заменил этот символ (Letter[i];) на найденый
end;

А в примере два массива. Но думаю для начала тебе лучше сделать самый простой вариант


Не оказываю помощь через личные сообщения и ICQ
 
Форум » Все о Delphi » Начинающим » Перевод из латиницы в кириллицу... (как реализовать?)
Страница 1 из 11
Поиск:

Copyright DelphiDevelop.ru © 2008-2017
Хостинг от uCoz