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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 11:40   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию Ошибка. Operator not applicable to this oparand type

Вот код:
Код:
for i:=1 to length(pass) do
     begin
          a:=copy(pass,i,1);
          if (not a in ['a'..'z']) then begin
...
Выдаёт ошибку: Operator not applicable to this oparand type. В чём дело?
_-Re@l-_ вне форума Ответить с цитированием
Старый 29.06.2010, 11:44   #2
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию

Очень маленький кусочек кода. Ошибка соответствия типов данных а - это что?
baster128 вне форума Ответить с цитированием
Старый 29.06.2010, 11:56   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

baster128 +1

_-Re@l-_
объявите a не char (как это у вас)
а var a : string (можно a : string[1] - если уверены, что там не будет более одного символа!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.06.2010, 12:44   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

как бы если чё a у меня и так string( я уж не на столько идиот)
Вот
Код:
var
  Form1: TForm1;
  i:integer;
  a:string;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
     Application.Terminate;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    for i:=1 to 2 do
     begin
          if i = 1 then begin
          a:=copy(Edit1.Text,1,1);
          if a<>'1' then begin
          MessageDlg('Error!',mtError,[mbOk],0);
          exit
          end
          end;
          if i = 2 then begin
          a:=copy(Edit1.Text,2,1);
          if a<>'a' then begin
          MessageDlg('Error!',mtError,[mbOk],0);
          exit
          end
          end;
          if i = 3 then begin
          a:=copy(Edit1.Text,length(Edit1.Text),1);
          if a<>'x' then begin
          MessageDlg('Error!',mtError,[mbOk],0);
          exit
          end
          end
     end;
     if (copy(Edit1.Text,1,1) = '1') and (copy(Edit1.Text,2,1) = 'a')
     and (copy(Edit1.Text,length(Edit1.Text),1) = 'x') then
     MessageDlg('Верно',mtWarning,[mbOk],0);
end;
P.S. Я уже исправил, можете закрывать тему.

Последний раз редактировалось _-Re@l-_; 29.06.2010 в 12:55.
_-Re@l-_ вне форума Ответить с цитированием
Старый 29.06.2010, 12:58   #5
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

String - это указатель.
VintProg вне форума Ответить с цитированием
Старый 29.06.2010, 13:12   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
P.S. Я уже исправил, можете закрывать тему.
а.. я, мне кажется, понял в чём была ошибка!
Приоритет операции NOT выше всех остальных...
поэтому надо было так:
Код:
if not (a in ['a'..'z']) then begin
...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.06.2010, 13:30   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Я уже исправил
Вертай взад... Это плохо ты исправил, не рекомендую так программировать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка array type required _alis_ Компоненты Delphi 1 31.05.2010 17:27
ошибка error loading type library DEsh Общие вопросы Delphi 4 08.04.2010 18:13
Эта надоедливая ошибка: Type mismatch expresion :( artemavd БД в Delphi 8 25.06.2009 17:21
Ошибка incompatible type conversion Danil21 Общие вопросы C/C++ 5 18.05.2009 04:23
ошибка - [Error] Unit1.pas(325): Operator not applicable to this operand type blackstersl Общие вопросы Delphi 6 27.08.2008 13:17