Как сравнить стринговую переменную с пустым значением?
Модераторы: m0p3e, edward_K, Модераторы
Как сравнить стринговую переменную с пустым значением?
ааа:string
Почему-то не прокатывает ни
if aaa<>''
ни
if aaa<>' '
ни
if aaa>' '
С двумя последними может выйти некорректно, что естественно.
Как сравнить со значением пустого поля,типа, если не пусто, то...? Может есть какая-нибудь подходящая для этого функция? Или просто сравнивать с символом, имеющим самое минимальное значение в кодовой таблице?
И, счет-субсчет - это же стринг?
Почему-то не прокатывает ни
if aaa<>''
ни
if aaa<>' '
ни
if aaa>' '
С двумя последними может выйти некорректно, что естественно.
Как сравнить со значением пустого поля,типа, если не пусто, то...? Может есть какая-нибудь подходящая для этого функция? Или просто сравнивать с символом, имеющим самое минимальное значение в кодовой таблице?
И, счет-субсчет - это же стринг?
-
- На пенсии
- Сообщения: 797
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г. Тюмень
- Контактная информация:
копайте код, не здесь ошибка, сравнение описано верно.
Код: Выделить всё
if sTmp <> ''
{
...
}
Он не выполняет в этом простом условии ничего, стоящее в {}. условие не равно True (Max_Fin писал(а):копайте код, не здесь ошибка, сравнение описано верно.Код: Выделить всё
if sTmp <> '' { ... }
В коде негде копать, все так же просто, как описано тобой.
А может быть так, что в переменной, когда она пустая, закрался пробел и она уже не считается пустой?
-
- Местный житель
- Сообщения: 228
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Попробуй сделать следующее:
Код: Выделить всё
var aaa:string; // объяви как глобальную переменную. Если она определяется в table, то и обращайся к ней как к table.aaa (лучше и использовать внутри только этой таблицы)
.begin
aaa := '';
if aaa <> '' then
{
Message('Не равно');
} else Message('равно');
end.
пожлатеMax_Fin писал(а):Это случаем не в форме делаешь, если да, то код покажь
Код: Выделить всё
.....
.{table 'имя_вью.временная_таблица'
Sal_f:=временная_tmp.edd_c7p4
.....
if (sal_f='')=true then
{
Itog_SalD:=0.00;
Itog_SalC:=0.00;
Itog_SalD2:=0.00;
Itog_SalC2:=0.00;
.....
message(Sal_F) //дает пусто, даже если в переменной пустота
}
else
{
Itog_SalD:=временная_табл.edd_c7p8
Itog_SalC:=временная_табл.edd_c7p9
}
.....
.}
-
- На пенсии
- Сообщения: 797
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г. Тюмень
- Контактная информация:
ну дык, а что вы хотели в Sal_F пустая строка, что там еще выводитьedd писал(а):Код: Выделить всё
..... if (sal_f='')=true then { ..... message(Sal_F) //дает пусто, даже если в переменной пустота } ..... .}
если бы написано было бы что-то вроде этого, то имеет смысл что-нить выводить на экран.
Код: Выделить всё
.....
if (sal_f<>'') then
{
.....
message(Sal_F);
}
.....
.}
Код: Выделить всё
.....
if (sal_f='') then
{
.....
//message(Sal_F);//выводить НЕЧЕГО!
}
else
{
.......
message(Sal_F);
.......
}
.....
.}
сорри не sal_f='', а if sal_f<>'', просто код уже поменял и не заметил.Max_Fin писал(а):ну дык, а что вы хотели в Sal_F пустая строка, что там еще выводитьedd писал(а):Код: Выделить всё
..... if (sal_f='')=true then { ..... message(Sal_F) //дает пусто, даже если в переменной пустота } ..... .}
если бы написано было бы что-то вроде этого, то имеет смысл что-нить выводить на экран.Код: Выделить всё
..... if (sal_f<>'') then { ..... message(Sal_F); } ..... .}
-
- Местный житель
- Сообщения: 228
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
А если сделать сообщение так:
И сравнить две строки. Может быть в переменной пробелы стоят.
Код: Выделить всё
message('<'+sald_f+'>'+chr(13)+sald_f);
А (= true) зачем нужно Попробуй его убрать...Код: Выделить всё
..... if (sal_f='')=true then { ..... message(Sal_F) //дает пусто, даже если в переменной пустота } .....
-
- На пенсии
- Сообщения: 797
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г. Тюмень
- Контактная информация:
До всех условий запишите значение вашей переменной в лог
Код: Выделить всё
LogStrToFile('c:\log.txt', aaa);