Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Транслит. Текст - > Tekst, Как перевести русские слова в транслит? 
V
    Опции темы
Canada
  Дата 22.3.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



Как мне сделать так, чтобы слово Текст было преобразовано в Tekst ?
PM MAIL   Вверх
Данкинг
Дата 22.3.2009, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Ты сам-то как думаешь?  Наверное, парсить строку и менять кириллические символы на латинские. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Dmi3ev
Дата 22.3.2009, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41



Цитата

Как мне сделать так, чтобы слово Текст было преобразовано в Tekst ? 

ты думал, что есть такая команда? 
Код

Edit1.Translit_Bistro_Komu_Skazal;

Кстати попробуй, может быть магия тебе поможет  smile 


--------------------

PM MAIL   Вверх
Данкинг
Дата 22.3.2009, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Вот мой алгоритм: функция, ищущая в таблице .mdb соответствия (соответственно, поля CYR и LAT) и переводящая на латиницу:

Код

function tform1.translate(sss:string):string;
var j:integer;st,l:string;
begin
st:='';
for j:=1 to length(sss) do
 begin
 l:=copy(sss,j,1);
  if not ado.Locate('cyr',l,[]) then st:=st+l
 else
  begin
   try
   st:=st+ado.FieldValues ['lat'];
   except;
   st:=st+l
   end;
  end;
 end;
result:=st;
end;  



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Poseidon
Дата 23.3.2009, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Данкинг, а сама таблица где?  smile 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Данкинг
Дата 23.3.2009, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Poseidon @ 23.3.2009,  00:14)
Данкинг, а сама таблица где?  smile

Я думал, что таблицу каждый сделает в соответствии с собственными потребностями. smile Ну, вот моя.

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  tnf.rar 6,18 Kb


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Poseidon
Дата 23.3.2009, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Данкинг @  23.3.2009,  00:31 Найти цитируемый пост)
Я думал, что таблицу каждый сделает в соответствии с собственными потребностями.
Вообще, на сколько я знаю, есть стандарты транслита, т.е. каждая буква киррилицы имеет определенные символы латиницы. Поэтому, думаю, можно было бы все зашить в код и не тягать БД. Т.е. 2 текстовых массива одинаковой размерности. В одном кириллица, в другом соответствующая латиница. И простой подменой символов с одного массива символами с другого.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Данкинг
Дата 23.3.2009, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Poseidon @  23.3.2009,  00:39 Найти цитируемый пост)
есть стандарты транслита

Есть какие-то там, но я делал так, как обычно сам пишу латиницей. Не по правилам (к примеру, Ы у меня Y).

Цитата(Poseidon @  23.3.2009,  00:39 Найти цитируемый пост)
Поэтому, думаю, можно было бы все зашить в код и не тягать БД.

Разумеется, можно, просто БД сделана для гибкости теоретических изменений. smile Которых, впрочем, я ни разу не сделал. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Canada
Дата 23.3.2009, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



Так. Опять спасибо всем. Я сделал через case of. В общем. Готово. Всем еще раз спасибо.
PM MAIL   Вверх
Данкинг
Дата 23.3.2009, 03:01 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Canada @  23.3.2009,  01:57 Найти цитируемый пост)
Я сделал через case of

ИМХО не лучший вариант, но дело твоё.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Poseidon
Дата 23.3.2009, 12:45 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Canada @  23.3.2009,  01:57 Найти цитируемый пост)
Я сделал через case of.
Интересно взглянуть как удалось строку (не перечисляемый тип) пропарсить через case of



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Kbl4AH
Дата 23.3.2009, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 4
Всего: 15



Цитата(Poseidon @  23.3.2009,  12:45 Найти цитируемый пост)
Интересно взглянуть как удалось строку (не перечисляемый тип) пропарсить через case of

наверное, Canada имел ввиду подобное
Код

var
  S1, S2: string;
  I: Integer;
begin
  S1 := '13245678';
  S2 := '';
  for I := 1 to Length(S1) do
    case S1[I] of
      '1', '3', '5', '7', '9' :
        S2 := S2 + 'n'
    else
      S2 := S2 + 'c';
    end; 
end;


Это сообщение отредактировал(а) Kbl4AH - 23.3.2009, 16:58
PM MAIL ICQ   Вверх
aliks
Дата 13.4.2009, 13:24 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.12.2008

Репутация: нет
Всего: 1



Можно было бы сделать через массив, к примеру

Код

TTranslit = record
   rus: string;
   lat: string;
end;

var
   Traslit: array of TTranslit;

begin
   SetLegth(Translit,33);
   //А дальше описываем соответствие кириллицы и латиницы в соответствии с предпочтениями
   Translit[0].rus := 'A';
   Translit[0].lat  := 'A';
   Translit[1].rus := 'Б';
   Translit[1].lat  := 'B';
   //и т.д. все буквы алфавита
end;


--------------------
Любимая кнопка - F1, Любимое спасибо - Плюс в репутацию
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1244 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.