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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2011, 10:12   #11
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Ну дак он у меня и идет в условии.
Прочтите внимательно что я написал.
Цитата:
Да не думаю, что дело-то собственно тут в StrToInt. Она всего лишь переводит строку в число, это сделано.
В данном случае она переводит только нормальное число без пробелов. А я предлагаю совместить Трим и СтрТоИнт в один флакон. Разница во входящем параметре. Ну дело Ваше, я только предложил.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 22.12.2011, 10:46   #12
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Прошу прощения, неправильно прочитал. Да, я написал в момент присваивания эти две функции так:
Код:
 if Form1.sp2.FieldByName('KATEGORIA').AsString <> '' then
 begin
  k:=StrToInt(Trim(Form1.sp2.FieldByName('KATEGORIA').AsString));
 end;
Затем поменял тип переменной k с string на integer. А в условиях убрал StrToInt(). На результат опять же не повлияло...
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 22.12.2011, 12:49   #13
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Код:
Form1.sp2.FieldByName('KATEGORIA').AsString <> ''
Есть тоже идейка, если по скорости
Код:
Form1.sp2.FieldByName('KATEGORIA').AsString > ''
это вроде быстрей, а по функциональности идентично. Или я ошибаюсь?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 22.12.2011, 13:09   #14
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Доброе утро! Интересует оптимизация кода. У меня проверяется три условия. Например так (псевдоусловия):
Код:
 if (A = '+') and (B = '+') and (K = '10') then
 begin
  ...
 end;
 if (A = '+') and (B = '+') and (K = '11') then
 begin
  ...
 end;
 if (A = '+') and (B = '+') and (K = '12') then
 begin
  ...
 end;
 if (A = '+') and (B = '+') and (K = '13') then
 begin
  ...
 end;
 if (A = '+') and (B = '+') and (K = '18') then
 begin
  ...
 end;
Вместо "..." код совершенно одинаковый. Как можно оптимизировать и записать код короче? Параметр К может идти как по порядку, так и нет.
Тему не читал практически. Могу посоветовать вот что:

Код:
if a+b = '++' then
		begin
			if k = '1' then
					begin
					...
					end;
					
			if k = '2' then
					begin
					...
					end;
					
			if k = '4' then
					begin
					...
					end;
					
		end;
как-то так...
Вадим Мошев вне форума Ответить с цитированием
Старый 22.12.2011, 13:12   #15
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
как-то так...
У него нечистое к, а может содержать пробелы.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 22.12.2011, 13:40   #16
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Цитата:
У него нечистое к, а может содержать пробелы.
А так же другие символы из-за всей кодовой страницы)
Поэтому надо добавить проверку корректности данных.

artemavd, если в атрибуте KATEGORIA у вас хранятся цифры, то почему у данного поля строковый тип, а не целочисленный?

Между прочем можно так:
Код:
var
  K: Integer;
begin
  К := Form1.sp2.FieldByName('KATEGORIA').AsInteger;
  if (A = '+') and (B = '+') and (K in [10..13, 18]) then  //...
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.

Последний раз редактировалось chertovich; 22.12.2011 в 13:54.
chertovich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция проверки emal Fok Общие вопросы Delphi 2 06.11.2010 05:25
Продолжение после проверки painkiller Общие вопросы C/C++ 1 17.10.2010 23:43
Реализация проверки орфографии Romirez Помощь студентам 4 26.09.2010 12:51
Макрос проверки ошибок Iskin Microsoft Office Excel 7 09.12.2008 14:00
Система проверки на человека Andrey1433 PHP 2 11.03.2008 14:13