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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод латынских букв в русские, перевод из транслита в русские символы 
:(
    Опции темы
D1myan
  Дата 31.8.2008, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте, помогите найти функцию перевода строки из латынских в русские символы.
за рание СПС!  smile 
PM MAIL   Вверх
Данкинг
Дата 31.8.2008, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Во-первых, не в русские, а в кириллические. А во-вторых, в чём именно проблема? Вроде как написать самому не так сложно.


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


Новичок



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

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



Вот пытался но там есть ошибки которые я не могу исправить
Код

function DeConvert(OldName: string): string;
var OldNameLength: integer;
  i: integer;
  s: string;
  temp,del:string;
begin
OldNameLength := length(OldName);
s:='';
i:=0;
while i<=OldNameLength do begin
i:=i+1;
Temp:=copy(OldName,1,2+i);
Del:=copy(temp,1,i-1);
delete(temp,1,length(del));
if Temp = 'Sch' then begin s:=s+'Ù'; i:=i+2; end;
if Temp = 'sch' then begin s:=s+'ù'; i:=i+2; end;
Temp:=copy(OldName,1,1+i);
Del:=copy(temp,1,i-1);
delete(temp,1,length(del));
if Temp = 'Yo' then begin s:=s+'¨'; i:=i+1; end;
if Temp = 'yo' then begin s:=s+'¸'; i:=i+1; end;
if Temp = 'Ch' then begin s:=s+'×'; i:=i+1; end;
if temp = 'ch' then begin s:=s+'÷'; i:=i+1; end;
if Temp = 'Sh' then begin s:=s+'Ø'; i:=i+1; end;
if Temp = 'sh' then begin s:=s+'ø'; i:=i+1; end;
if Temp = 'Yu' then begin s:=s+'Þ'; i:=i+1; end;
if Temp = 'yu' then begin s:=s+'þ'; i:=i+1; end;
if Temp = 'Ya' then begin s:=s+'ß'; i:=i+1; end;
if Temp = 'ya' then begin s:=s+'ÿ'; i:=i+1; end;
if OldName[i] = chr(39) then s:=s+'ü';
if OldName[i] in ['A','B','a','b'] then
  s:=s+chr(ord(OldName[i])+127);
if OldName[i] in ['V','v'] then
  s:=s+chr(ord(OldName[i])+108);
if OldName[i] in ['G','g','J','j'] then
  s:=s+chr(ord(OldName[i])+124);
if OldName[i] in ['D','d','E','e'] then
  s:=s+chr(ord(OldName[i])+128);
if OldName[i] in ['Z','z'] then
  s:=s+chr(ord(OldName[i])+109);
if OldName[i] in ['I','i','K','k','L','l','M','m','N','n','O','o','P','p'] then
  s:=s+chr(ord(OldName[i])+127);
if OldName[i] in ['R','r','S','s','T','t','U','u'] then
  s:=s+chr(ord(OldName[i])+126);
if OldName[i] in ['F','f'] then
  s:=s+chr(ord(OldName[i])+142);
if OldName[i] in ['H','h'] then
  s:=s+chr(ord(OldName[i])+141);
if OldName[i] in ['C','c'] then
  s:=s+chr(ord(OldName[i])+147);
if OldName[i] in ['Y','y'] then
  s:=s+chr(ord(OldName[i])+130);
if (OldName[i] in ['À'..'ÿ']+['0'..'9']+
                ['{']+['}']+['[']+[']']+['`']+['~']+
                ['!']+['@']+['#']+['$']+['%']+['^']+
                ['&']+['*']+['(']+[')']+['-']+['_']+
                ['+']+['=']+['\']+['|']+[';']+[':']+
                ['"']+['{']+['<']+['>']+[',']+['.']+
                [' ']+['?']+['/']+['¹']+['^'])
              then s:=s+OldName[i];
end;
DeConvert:=s;
end;


Это сообщение отредактировал(а) D1myan - 31.8.2008, 20:39
PM MAIL   Вверх
Данкинг
Дата 31.8.2008, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(D1myan @  31.8.2008,  21:32 Найти цитируемый пост)
но там есть ошибки которые я не могу исправить

Какие именно?


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


Новичок



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

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



Спс за внимание, но я уже разобрался в чем была ошибка

Код

if Temp = 'Sch' then begin s:=s+'Ù'; i:=i+2; end; //тут нада +3
if Temp = 'sch' then begin s:=s+'ù'; i:=i+2; end;
Temp:=copy(OldName,1,1+i);
Del:=copy(temp,1,i-1);
delete(temp,1,length(del));
if Temp = 'Yo' then begin s:=s+'¨'; i:=i+1; end; //тут +2
if Temp = 'yo' then begin s:=s+'¸'; i:=i+1; end;


вроде работает =)

Это сообщение отредактировал(а) D1myan - 31.8.2008, 21:12
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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