Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2007, 15:46   #1
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию помогите написать програмку.

В общем такое дело: на форме кнопка, Edit1 и Edit2. Подскажите пожалуйста код, чтобы введя в Edit1, например "дорога", в Edit2 появлялось "doroga", и так с любым введенным словом.
Kashp вне форума Ответить с цитированием
Старый 29.08.2007, 15:56   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

1. Создаете 2 массива. В 1-м русские буквы, в 2-м латинские буквы в соответствии с русскими... (по порядку)
и идете по буквам подставляя соответствующие значения из 2-го массива. Ну либо не массивами, вариантов куча.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 29.08.2007, 16:33   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Код:
function TranslitRus2Lat(const Str: string): string;
const
  RArrayL = 'абвгдеёжзийклмнопрстуфхцчшщьыъэюя';
  RArrayU = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ';
  colChar = 33;
  arr: array[1..2, 1..ColChar] of string =
  (('a', 'b', 'v', 'g', 'd', 'e', 'yo', 'zh', 'z', 'i', 'y',
    'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f',
    'kh', 'ts', 'ch', 'sh', 'shch', '''', 'y', '''', 'e', 'yu', 'ya'),
    ('A', 'B', 'V', 'G', 'D', 'E', 'Yo', 'Zh', 'Z', 'I', 'Y',
    'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F',
    'Kh', 'Ts', 'Ch', 'Sh', 'Shch', '''', 'Y', '''', 'E', 'Yu', 'Ya'));
var
  i: Integer;
  LenS: Integer;
  p: integer;
  d: byte;
begin
  result := '';
  LenS := length(str);
  for i := 1 to lenS do
  begin
    d := 1;
    p := pos(str[i], RArrayL);
    if p = 0 then
    begin
      p := pos(str[i], RArrayU);
      d := 2
    end;
    if p <> 0 then
      result := result + arr[d, p]
    else
      result := result + str[i]; 
  end;
end;
edit2.text:=TranslitRus2Lat(edit1.t ext);
_SERGEYX_ вне форума Ответить с цитированием
Старый 29.08.2007, 16:44   #4
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Спасибо
Kashp вне форума Ответить с цитированием
Старый 30.08.2007, 12:04   #5
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

А вот теперь надо сделать наоборот (yasniy-ясный). Как видно из кода _SERGEYX_
Код:
 RArrayL = 'абвгдеёжзийклмнопрстуфхцчшщьыъэюя';
  RArrayU = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ';
Здесь все ясно, но как вписать в 'RArrayL' и 'RArrayU' английский буквы, соответствующие русским буквам (например- YA-Я ), ведь 'YA' - это уже 2 символа.
Kashp вне форума Ответить с цитированием
Старый 30.08.2007, 12:17   #6
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Kashp Посмотреть сообщение
А вот теперь надо сделать наоборот (yasniy-ясный)
Проще уж сделать дословно, с акцентом: ясний (вместо ясный).
Вообще, англицкий, помоему, совсем не подходит для перевода на русский. Есть например буквы, при разном написании дающие разные звуки. Например буква С: cat и city.
Alex21 вне форума Ответить с цитированием
Старый 30.08.2007, 12:22   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Kashp зачем просто стринг ?
два стринг массива и все
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 30.08.2007, 12:49   #8
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от Alex21 Посмотреть сообщение
Проще уж сделать дословно, с акцентом: ясний (вместо ясный).
Вообще, англицкий, помоему, совсем не подходит для перевода на русский. Есть например буквы, при разном написании дающие разные звуки. Например буква С: cat и city.
Наверное я непонятно изъяснился. Нужно сделать так: A-A, B-Б, V-В, G-Г, D-Д ... ZH-Ж, SH-Ш и т.д.

Квэнди, ты не мог бы на примере мне разъяснить, как это сделать?
Kashp вне форума Ответить с цитированием
Старый 30.08.2007, 13:59   #9
S.W.A.T.
Пользователь
 
Регистрация: 13.06.2007
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Kashp Посмотреть сообщение
Наверное я непонятно изъяснился. Нужно сделать так: A-A, B-Б, V-В, G-Г, D-Д ... ZH-Ж, SH-Ш и т.д.

Квэнди, ты не мог бы на примере мне разъяснить, как это сделать?
Тут тоже все просто.. Считываешь по 2 символа, проверяешь сначала нет ли сочетания из этих символов, если нет, то заменяешь первый символ на его русский эквивалент, если же такое сочетание есть, то соответственно заменяешь одной буквой русского алфавита.
www.saprulez.ru - готовые программы, форум.
S.W.A.T. вне форума Ответить с цитированием
Старый 30.08.2007, 14:16   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

stringreplace тебе в помощь как вариант, ибо двойных вариантов немного
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите доделать програмку lyonya0111 Помощь студентам 17 02.07.2008 21:50
задача под windows,помогите написать.Надо написать на Borland C++Builder 6. eddddii Помощь студентам 9 23.05.2008 17:04
помогомите написать програмку для передачи сообщений в локальной сети Илюха Работа с сетью в Delphi 6 20.11.2007 00:57
Требуется написать маленькую програмку mivang Фриланс 2 02.04.2007 16:15