Форум по 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
Ответить с цитированием
  #7  
Старый 25.12.2011, 21:56
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Код:
While n <= Length(Edit1.Text) Do
__________________
If end Then begin;

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

Не получается...не выводит в Label(
Ответить с цитированием
  #9  
Старый 25.12.2011, 22:28
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Скинь проект посмотрю отредактирую.
__________________
If end Then begin;
Ответить с цитированием
  #10  
Старый 26.12.2011, 14:11
Scooby_Do Scooby_Do вне форума
Прохожий
 
Регистрация: 25.12.2011
Сообщения: 41
Версия Delphi: 7
Репутация: 10
По умолчанию

PHP код:
unit project1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsStdCtrlsExtCtrls;

type
  TForm1 
= class(TForm)
    
Edit1TEdit;
    
Button1TButton;
    
Label2TLabel;
    
Button2TButton;
    
GroupBox1TGroupBox;
    
Label1TLabel;
    
procedure Button1Click(SenderTObject);
    
procedure Button2Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(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.Textn2);
   For 
i:= 1 To 58 Do if M[iThen Label1.Caption:= Label1.Caption Z[i];
   
Inc(n2);
  
end;
end;


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;

end

и ещё, как в сделать так, что бы результат выводил не в Label, а в Memo. Memo1.Name и просто Memo не работает(((
Ответить с цитированием
  #11  
Старый 26.12.2011, 18:35
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Работает нормально: Coder.rar
__________________
If end Then begin;
Ответить с цитированием
  #12  
Старый 26.12.2011, 20:39
Scooby_Do Scooby_Do вне форума
Прохожий
 
Регистрация: 25.12.2011
Сообщения: 41
Версия Delphi: 7
Репутация: 10
По умолчанию

Спасибо огромное. Вот появилась ещё одна проблема....ппц...не компилируется. Ошибок-то нет: я нажимаю на Compile(ctrl+f9) и ни чего не происходит. Debag работает. Может это из-за пиратской версии Delphi или из-за того что я её не активировал)

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

Просто F9 нажми посмотри вообще запускается в среде.
У меня Windows 7 64bit хотя я думаю не в этом проблема.
Создай чистый проект и скопируй туда код может так запустится.
На всяк случай Coder v1.0.rar
__________________
If end Then begin;
Ответить с цитированием
  #14  
Старый 27.12.2011, 11:16
Scooby_Do Scooby_Do вне форума
Прохожий
 
Регистрация: 25.12.2011
Сообщения: 41
Версия Delphi: 7
Репутация: 10
По умолчанию

f9 работает. Запускается. Блин, ща попробую новый проект сделать!
Ответить с цитированием
  #15  
Старый 27.12.2011, 11:45
Scooby_Do Scooby_Do вне форума
Прохожий
 
Регистрация: 25.12.2011
Сообщения: 41
Версия Delphi: 7
Репутация: 10
По умолчанию

неа, создал новый проект, скопировал код с того, тоже не компилируется(( попробую переустановить delphi
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter