| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Проблемы с translit-ом , вопрос есть, как реализ |
| Автор: virtul 15.1.2009, 15:22 | ||
| Люди! Тут такое дело: еcть прога типа Translit-ор. два МЕМО, кнопка, процедура конвертиции текста. пример работы: \\в первое мемо вводим текст МЕМО1: привет \\нажимаем на кнопку МЕМО2: privet \\ну и вот чё получаем --------------- я чё спрашиваю, я несовсем понял код. Котонибудь может мне его обьяснить. и как мне обойтись одним МЕМО? для полной информации скажу есть два массива(стринг) , первый для русскиих символов, другой для англ. символов. массивы я писать небуду, там нужно весь алфавит переписывать но пример такой( rs:='Ы'; ens:='S';) ------------- короче вот код:
procedure TForm.ConvertText(vtext: String); var i : Integer; begin for i := 0 to 65 do begin if vtext= rs[i] then vtext:= ens[i]; end; MemoDest.Text := MemoDest.Text + vtext; end; ---------- Обьясните что, чё делает и как одним МЕМО обойтись(может через переменную типа стринг, только как?)? Основной вопрос: как одним МЕМО обойтись? |
| Автор: virtul 15.1.2009, 15:53 |
| Всё, додумался! Кажись... |
| Автор: Bose 15.1.2009, 17:17 |
| virtul, пользуйся кнопкой "Код" |
| Автор: virtul 16.1.2009, 12:27 | ||||
| НЕт! кажись не додумался! короче вот так хотел сделать:
пример проги прикрепил к сообщению под именем pr1t.exe в этой проге переводится слово или буква из массива но ТОЛЬКО ОДНА(О)!Тоесть: q=й qwerty=йцукен ytrewq=некуцй qq=qq qwertyqwerty=qwertyqwerty и т.д а мне нужно чтобы всё работало во всём тексте. Я бы мог вместо этого написать
но мне нужно с учётом регистра, именно поэтому я в массивах алфавита писал маленькие и БОЛЬШИЕ буквы. А у функции StringReplace есть особенность: ей побарабану регист: ей что "QwErTy" или "QWERTY" или "qwerty" она всёравно переведёт это как "йцукен" ----------------- Потом я пытался вместо: ConvertText(vtext); сделать так: ConvertText(vtext[i]); но вышло ещё круче: теперь прога переводит только последний символ(слово не обрабатывает): тоесть q=й qq=й y=н qwerty=н прикрепил к сообщению по именем: pr2t.exe Чёто я запарился... |
| Автор: virtul 16.1.2009, 12:29 | ||||
| НЕт! кажись не додумался! короче вот так хотел сделать:
пример проги прикрепил к сообщению под именем pr1t.exe в этой проге переводится слово или буква из массива но ТОЛЬКО ОДНА(О)!Тоесть: q=й qwerty=йцукен ytrewq=некуцй qq=qq qwertyqwerty=qwertyqwerty и т.д а мне нужно чтобы всё работало во всём тексте. Я бы мог вместо этого написать
но мне нужно с учётом регистра, именно поэтому я в массивах алфавита писал маленькие и БОЛЬШИЕ буквы. А у функции StringReplace есть особенность: ей побарабану регист: ей что "QwErTy" или "QWERTY" или "qwerty" она всёравно переведёт это как "йцукен" ----------------- Потом я пытался вместо: ConvertText(vtext); сделать так: ConvertText(vtext[i]); но вышло ещё круче: теперь прога переводит только последний символ(слово не обрабатывает): тоесть q=й qq=й y=н qwerty=н прикрепил к сообщению по именем: pr2t.exe |
| Автор: Frees 16.1.2009, 12:44 |
| в DRKB посмотри статью "}{0TT@БЬIЧ" там те только нужно FormCreate поправить |
| Автор: virtul 16.1.2009, 21:45 | ||||
| смотрел, кстати от туда и взял, но мне нужно одним МЕМО, помоги... Добавлено через 7 минут и 11 секунд Я кажись додумался нужно было заменить:
на это:
|