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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2015, 16:03   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Не выполняется условие на равенство текстовой строки от сервера

Ситуация:
1) Посылаю скрипту php на сервере данные для обработки
Код:
LoginInfo:=TStringList.Create;
            LoginInfo.Add('login='+St_login);
            LoginInfo.Add('passw='+St_pass);
            str:=idhtp1.Post('http://test1.ru/golos/delphi/status_server.php',LoginInfo);
2)Получаю ответ:
Один из 3х вариантов:On1,Off1 или Off2
3) Ответ действительно получаю
4) при попытке сравнить результат и изменить цвет текста логика не работает:
Код:
if (str='On1' )then begin
             lbl12.Font.Color:=clGreen;
            end
            else begin
             lbl12.Font.Color:=clRed;
            end; }
lbl12.Caption:=str;
Пробовал менять местами изменение цвета и вывод в лабел:
lbl12.Font.Color:=clGreen;
lbl12.Caption:=str;

и наоборот:
lbl12.Caption:=str;
lbl12.Font.Color:=clGreen;

Цвет то меняется, но не по логике, то есть сравнение на 'Оn1' не проходит, хотя в лабеле именно это и отображается Оn1.

Что не так?
Illusiony вне форума Ответить с цитированием
Старый 30.01.2015, 16:15   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,877
По умолчанию

Пробела там в конце случайно нет? Или другого какого-нибудь служебного символа.
northener вне форума Ответить с цитированием
Старый 30.01.2015, 16:24   #3
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

если не равно значит не равно, проверить на длину и на сами символы, например О не то..
lomastr_ вне форума Ответить с цитированием
Старый 30.01.2015, 16:30   #4
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Странно, действительно длинна 4. Но в php я делал так:

Код:
echo "On1";
Откуда еще 1 символ?
Попробовать просто обрезать последний символ, или первый?

Удалил первый символ:
Код:
Delete(str,1,1);
Откуда же берется "невидимый" символ в начале строки( раз невидимый значит какой то специальный)?

Надо вспомнить как определить код символа.

Последний раз редактировалось Stilet; 30.01.2015 в 21:22.
Illusiony вне форума Ответить с цитированием
Старый 03.02.2015, 09:11   #5
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

chr() и ord() вам помогут.
в частности i:=ord(str[1]);
где i код первого символа.

p.s. использовать str в качестве переменной плохая идея в дельфи, так как это зарезервированная функция и вы её переопределяете.
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.

Последний раз редактировалось IliaIT; 03.02.2015 в 09:15.
IliaIT вне форума Ответить с цитированием
Старый 03.02.2015, 10:04   #6
disbnt
Пользователь
 
Регистрация: 18.09.2014
Сообщений: 32
По умолчанию

Используйте функцию pos().Будет проще
Код:
  if pos('On1',str) > 0 then ...
disbnt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
условие равенство Тамерлан Абилов Паскаль, Turbo Pascal, PascalABC.NET 9 12.07.2013 19:30
Не выполняется условие Astash Помощь студентам 2 03.12.2011 11:21
Не выполняется условие Ragnarek45 Общие вопросы Delphi 3 10.12.2010 15:08
условие на равенство дат segail Microsoft Office Excel 26 29.08.2010 21:31
не выполняется условие Link12 Общие вопросы C/C++ 6 30.03.2010 19:36