Помогите написать код: при нажатии на кнопку в окне memo должны меняться символы, например: из РТЙЧЕФ в привет, дана таблица символов:
а-Б б-В в-Ч г-З д-Д е-Е ё-Ј ж-Ц з-Ъ и-Й к-Л л-М м-Н н-О о-П п-Р р-Т с-У т-Ф у-Х ф-Ж х-И ц-Г ч-Ю щ-Э ъ-Я э-Ь ю-А я-С Вероятно нужно применить массивы как их реализовать с данными требованиями? |
в чем именно проблема? |
как сделать замену символов ![]() |
сессия пришла, сорри за офф _________________ Скажи мне чей Крым, и я скажу кто ты. |
замену символов где нужно делать? |
в любом слове, написанном в memo, замену букв в слове нужно делать согласно таблице
а-Б б-В в-Ч г-З д-Д е-Е ё-Ј ж-Ц з-Ъ и-Й к-Л л-М м-Н н-О о-П п-Р р-Т с-У т-Ф у-Х ф-Ж х-И ц-Г ч-Ю щ-Э ъ-Я э-Ь ю-А я-С т.е. если будет написано например "ДПН" то при нажатии на кнопку в место "ДПН" будет "дом" |
блин, из мемо поля берешь строку, в ней делаешь замены символов и обратно в мемо. или сразу в мемо обрабатываешь как в строке |
да да из memo берется строка, заменяются символы и обратно в это же memo ![]() |
ну. дальше. что делаешь и что не получается? |
да вобщем то ни чего особо и не получается... дайте совет как это оформить... |
т.е. дельфи мы не знаем впринципе?
Добавлено спустя 20 секунд: иди читай методичке _________________ Скажи мне чей Крым, и я скажу кто ты. |
хотя бы уровень знаний сказал - первый класс, второй, 10 |
задаешь два массива, один с одной кодировкой, другой с другой кодировкой, потом присваиваешь им нужные значения, например
вместо числа 20 подставляешь количество элементов в твоих кодировках, считать лениво a: array[1..20] of char; - это одна кодировка b: array[1..20] of char; - это другая кодировка заполняешь массивы a[1] := 'а'; b[1] := 'Б'; a[2] := 'б'; b[2] := 'В'; и так далее... далее проходим по строке из мемо и заменяем символы в ней. для этого нужно взять по очереди каждый символ (цикл for), найти индекс этого символа в первом массива (а) и заменить на символ из другого массива. решай эти этапы - вопросы задавай |
А возможен ли такой вариант?
procedure TForm1.Button1Click(Sender: TObject); var I:integer; S:AnsiString; begin S:=Memo1.Text; for I:=1 to Length(Memo1.Text) do case Memo1.Text[i] of 'а':S[i]:='б'; 'б':S[i]:='в'; 'в':S[i]:='ч'; 'г':S[i]:='з'; { ... } else S[i]:=Memo1.Text[i]; end; Memo1.Text:=S; end; |
возможен. в смысле работать скорее всего будет. |
подскажите как действовать с заменой символов в цикле? |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |