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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2013, 16:50   #1
Юрич
 
Регистрация: 02.01.2013
Сообщений: 4
По умолчанию создать массив знаков [+-*/!@#$...]

в общем такая проблема: поступает входной символ, мне надо определить какой он через кейс. пытаюсь задать массив символов, и в случае, если символ подходит определенному массиву - следовать определенному этому случаю действию. кароче код:

Код:
procedure TForm1.scaner(sim: Char);
begin
  case sim of
  in alph.ident:     sost:=i;
  in alph.literal:    sost:=d;
  in alph.razdelit:  sost:=r;
  ' ':                   sost:=s;
  end;

где 
alph.ident:=['a'..'z','A'..'Z'];
alph.literal:=['0'..'9'];
temp:=#39;
alph.razdelit:=['+','-','*','/','=',',','.',':',';','<','>','[',']','(',')','{','}','"','@','$','#',temp];

при том 
type
  Letters = set of Char;
  sostojan=(s,i,d,r);
  alphavit=record
  ident:Letters;
  literal:Letters;
  razdelit:Letters;
end;
весь этот геморой возник в ходе моих попыток сделать проще )))) смысл - буквы в одну сторону, числа в другу, знаки в третью, но как записать апостроф? ведь символ в строковую переменную и так в апострофах записывается, не a(string):='''; писать. ну ладно апостроф через код записал, но делфя теперь ругается на звездочку в заполнении массива...

да, знаю, индийско, быдлокод и тд и тп... прост сам уже запутался, где то кейс на стринг ругался, массив чаров сделал, то вот с апострофами кавырялся... в общем научите дурака - посоветуйте, пожалуйста, как всю эту свистопляску обойти и написать грамотно)).



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 15.02.2013 в 10:38.
Юрич вне форума Ответить с цитированием
Старый 14.02.2013, 17:09   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
type TSostojan=(stNone,stS,stI,stD,stR);
var sost: TSostojan;

  case sim of
  'a'..'z','A'..'Z': sost:=stI;
  '0'..'9': sost:=stD;
  '+','-','*','/','=',',','.',':',';','<','>','[',']','(',')','{','}','"','@','$','#','''': sost:=stR;
  ' ': sost:=stS;
  else sost:=stNone;   //на случай если символ не входит в выше перечисленное
  end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать массив строк ИВэТэшка Общие вопросы C/C++ 3 04.12.2011 22:19
Создать двоичный файл, записать n целых чисел. Из файла создать массив, элементы числа-палиндромы (на C) Simak63 Помощь студентам 0 30.03.2011 21:06
Создать массив Mikhail91 Общие вопросы C/C++ 2 10.02.2010 23:21
Помогите создать массив... zhorzh2407 Общие вопросы Delphi 8 26.10.2008 00:38