Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.12.2011, 18:44
Scooby_Do Scooby_Do вне форума
Прохожий
 
Регистрация: 25.12.2011
Сообщения: 41
Версия Delphi: 7
Репутация: 10
По умолчанию Как проверять каждый символ в Edid

Всем привет. Я недавно в delphi. Вот решил написать простую программу. Вообщем вот: пользователь вводит в поле Edit какой-то текст. По нажатию кнопики Button, программа должна проверить текст, введенный в поле, на наличие символов и вывести результат в Label.

Допустим пользователь ввел 1a2b3c. Каждые два символа обозначают какую-то букву(типа шифровки):
1a:= a
2b:= р
3c:= o
Причем, если ввел 1a3c, то вывести в label ao, если 3с2b, то op и т.д. вообщем своя шифровка)

ВОПРОС: как сделать так, что бы программа проверяла каждые два символа?? Я так понимаю что нужен цикл. Я работал два года в языке pawn, так что общие понятия программирования знаю)))

Последний раз редактировалось Scooby_Do, 25.12.2011 в 18:47.
Ответить с цитированием
  #2  
Старый 25.12.2011, 19:45
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Вроде так, может и проще можно:
Код:
procedure TForm1.Button1Click(Sender: TObject);
Const
 M: Array[1..3] of String = ('1a', '2b', '3c');
 Z: Array[1..3] of String = ('а', 'р', 'о');
Var
 S: String;
 n, i: Integer;
begin
 n:= 1; Label1.Caption:= '';
 While n < Length(Edit1.Text) Do
  begin
   S:= Copy(Edit1.Text, n, 2);
   For i:= 1 To 3 Do if S = M[i] Then Label1.Caption:= Label1.Caption + Z[i];
   Inc(n, 2);
  end;
end;
__________________
If end Then begin;
Ответить с цитированием
  #3  
Старый 25.12.2011, 19:59
Scooby_Do Scooby_Do вне форума
Прохожий
 
Регистрация: 25.12.2011
Сообщения: 41
Версия Delphi: 7
Репутация: 10
По умолчанию

Спасибо огромное. Я так понял, что бы добавлять свои символы и их значения, надо просто прописать их в

PHP код:
M: Array[1..3of String = ('1a''2b''3c');
 
Z: Array[1..3of String = ('а''р''о'); 
я правильно рассуждаю?
Ответить с цитированием
  #4  
Старый 25.12.2011, 20:08
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Да правильно.
Еще надо поменять For i:= 1 To 3 Do... вместо 3 к-во символов в массиве.

Можно еще не по 2 сравнивать а по 3 и больше. Для этого надо сменить
Код:
 S:= Copy(Edit1.Text, n, 2);
 Inc(n, 2);

Причем в соотведствие можно и так написать:
Код:
M: Array[1..3] of String = ('1a', '2b', '3c'); 
 Z: Array[1..3] of String = ('Привет', 'не знаю', '177');
__________________
If end Then begin;

Последний раз редактировалось AND_REY, 25.12.2011 в 20:13.
Ответить с цитированием
  #5  
Старый 25.12.2011, 20:15
Scooby_Do Scooby_Do вне форума
Прохожий
 
Регистрация: 25.12.2011
Сообщения: 41
Версия Delphi: 7
Репутация: 10
По умолчанию

Хорошо, спасибо. А как в этот же тексте, то есть в тексте из Edit выловить eeee lklk ikik? То есть у нас eeee это пробел, lklk это !(восклицательный), а ikik это ?(вопросительный)
Ответить с цитированием
  #6  
Старый 25.12.2011, 20:44
Scooby_Do Scooby_Do вне форума
Прохожий
 
Регистрация: 25.12.2011
Сообщения: 41
Версия Delphi: 7
Репутация: 10
По умолчанию

у меня почему-то не работает обратное. То есть зашифровать текст. Вот, посмотри, где я ошибаюсь?
PHP код:
procedure TForm1.Button2Click(SenderTObject);
Const
 
M: Array[1..58of String = ('ox','uh','rr','un','yk','he','po','mq','me','je','eq','hh','pl','kj','nb','mm','cz','zz','xx','io','rg','nj','qs','tc','qw','nc','ba','wv','op','lm','dd','ad','1m','0w','3u','6v','7d','9i','d1','z3','q4','6c','7f','9g','8b','k3','9c','3a','5q','8d','j1','z1','#6','2p','3l','6o','8y','c1');
 
Z: Array[1..58of String = ('а','б','в','г','д','е','ё','ж','з','и','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','щ','ш','ь','ы','ъ','э','ю','я','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
Var
 
SString;
 
niInteger;
begin
 n
:= 1Label1.Caption:= '';
 While 
Length(Edit1.Text) Do
  
begin
   S
:= Copy(Edit1.Textn1);
   For 
i:= 1 To 58 Do if Z[iThen Label1.Caption:= Label1.Caption M[i];
   
Inc(n1);
  
end;
end
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter