Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > оператор In


Автор: uranpro 17.6.2008, 16:19
Код

const symcharset='!"#$%&''()*+,./:;<>?@[]^_`{}~';
...
var c:char;
begin
if c in symcharset then ...
end;


почему выдает ошибку ? (дело не в символе ' )

Автор: uranpro 17.6.2008, 16:34
((((( не вышло

const charset:string='1234567';
var ch:char;
begin
if ch in charset then ...


не работает, ошибка

Автор: Snowy 17.6.2008, 16:51
in ищет в массиве/наборе. А у тебя строка.
Для поиска в строке используй pos
if pos(c, charset) > 0 then ...

Автор: Max_Rendel 18.6.2008, 10:08
А вот так будет работать:

Код

var
  c: Char;
begin
  c := 'g';

  if c in ['!','"','#','$','%','&',#39,'(',')','*','+',',','.','/',':',';','<','>','?','@','[',']','^','_','`','{','}','~'] then // или лучше как то так ['a'..'z']
    ShowMessage('OK')
  else
    ShowMessage('NO');
end;

Автор: pseud 18.6.2008, 13:46
Max_Rendel, +1

uranpro, проще говоря загони свою строку в массив:
Код

procedure TForm1.Button1Click(Sender: TObject);
const
  symcharset = ['!','"','#','$','%','&','''','(',')','*','+',',','.','/',':',';','<','>','?','@','[',']','^','_','`','{','}','~'];
var
  c:char;
begin
  if c in symcharset then;
end;


Автор: uranpro 18.6.2008, 15:41
спасиб!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)