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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2013, 18:43   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Условие возвращает постоянно False

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
  s, s2: string;
begin
  s := 'test1';
  s2 := 'test1';

  SL := TStringList.Create;
  SL.Add('test1');
  SL.Add('test2');
  SL.Add('test3');
  SL.Add('test4');
  SL.Add('test5');
  if s = SL.Values[s2] then Caption := SL.Values[s2];
  SL.Free;
end;
В чём загвостка? Постоянно возвращается False, хотя там и там значения одинаковые.

Последний раз редактировалось Shouldercannon; 09.09.2013 в 18:50.
Shouldercannon вне форума Ответить с цитированием
Старый 09.09.2013, 18:46   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Values не для этого случая. Юзай Strings
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.09.2013, 19:03   #3
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
  s, s2: string;
  i:integer;
begin
  s := 'test1';
  s2 := 'test1';
  SL := TStringList.Create;
  SL.Add('test1');
  SL.Add('test2');
  SL.Add('test3');
  SL.Add('test4');
  SL.Add('test5');
  for i:=0 to sl.Count -1 do
   if sl[i]=s2 then
      Caption := SL[i];
  SL.Free;
end;
Но мне кажется, что это не то, что тебе нужно. Если тебе нужно использовать ассоциативное сравнение, то Аватар правильно сказал, юзай TStrings
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru

Последний раз редактировалось grominfo; 09.09.2013 в 19:09.
grominfo вне форума Ответить с цитированием
Старый 09.09.2013, 19:16   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
юзай TStrings
Причем здесь это? Имелось ввиду
Код:
if sl.Strings[i]=s2
собственно то же самое, что и
if sl[i]=s2
Для Values
SL.Add('name1=альфа');
SL.Values['name1'] и вернет 'альфа'
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.09.2013, 19:21   #5
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Аватар, ну а я разве по другому сказал? Автору нужно вернуть ассоциативное значение. Я показал, что в его случае проверка будет работать только таким образом:

Код:
  for i:=0 to sl.Count -1 do
   if sl[i]=s2 then
      Caption := SL[i];
То есть проверяется только по совпадению элемента. Потом добавил, что

Цитата:
Но мне кажется, что это не то, что тебе нужно. Если тебе нужно использовать ассоциативное сравнение, то Аватар правильно сказал, юзай TStrings
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать условие, которое возвращает значение true harvey Помощь студентам 1 10.10.2012 20:38
Application.ScreenUpdating = False Ципихович Эндрю Microsoft Office Word 3 25.02.2011 17:11
Интерпретатор FALSE Granus Софт 2 13.08.2010 11:37
Запрос возвращает пустую таблицу, если один из подзаросов возвращает пустую таблицу ArtInt SQL, базы данных 9 12.05.2010 15:40
False,True Jony Wocker Общие вопросы C/C++ 2 06.02.2010 00:42