Как сравнить стринговую переменную с пустым значением?
Модераторы: m0p3e, edward_K, Модераторы
Как сравнить стринговую переменную с пустым значением?
ааа:string
Почему-то не прокатывает ни
if aaa<>''
ни
if aaa<>' '
ни
if aaa>' '
С двумя последними может выйти некорректно, что естественно.
Как сравнить со значением пустого поля,типа, если не пусто, то...? Может есть какая-нибудь подходящая для этого функция? Или просто сравнивать с символом, имеющим самое минимальное значение в кодовой таблице?
И, счет-субсчет - это же стринг?
			
			
									
						
										
						Почему-то не прокатывает ни
if aaa<>''
ни
if aaa<>' '
ни
if aaa>' '
С двумя последними может выйти некорректно, что естественно.
Как сравнить со значением пустого поля,типа, если не пусто, то...? Может есть какая-нибудь подходящая для этого функция? Или просто сравнивать с символом, имеющим самое минимальное значение в кодовой таблице?
И, счет-субсчет - это же стринг?
- 
				Max_Fin
 - На пенсии
 - Сообщения: 797
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: г. Тюмень
 - Контактная информация:
 
копайте код, не здесь ошибка, сравнение описано верно.
			
			
									
						
										
						Код: Выделить всё
if sTmp <> ''
{
  ...
}
Он не выполняет в этом простом условии ничего, стоящее в {}. условие не равно True (Max_Fin писал(а):копайте код, не здесь ошибка, сравнение описано верно.Код: Выделить всё
if sTmp <> '' { ... }
В коде негде копать, все так же просто, как описано тобой.
А может быть так, что в переменной, когда она пустая, закрался пробел и она уже не считается пустой?
- 
				DarkAngel27
 - Местный житель
 - Сообщения: 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
        }
.....
.}
- 
				Max_Fin
 - На пенсии
 - Сообщения: 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);
.......
    }
.....
.}
сорриMax_Fin писал(а):ну дык, а что вы хотели в Sal_F пустая строка, что там еще выводитьedd писал(а):Код: Выделить всё
..... if (sal_f='')=true then { ..... message(Sal_F) //дает пусто, даже если в переменной пустота } ..... .}
если бы написано было бы что-то вроде этого, то имеет смысл что-нить выводить на экран.Код: Выделить всё
..... if (sal_f<>'') then { ..... message(Sal_F); } ..... .}
- 
				DarkAngel27
 - Местный житель
 - Сообщения: 228
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: Москва
 - Контактная информация:
 
А если сделать сообщение так:
И сравнить две строки. Может быть в переменной пробелы стоят. 
 Попробуй его убрать...
			
			
									
						
										
						Код: Выделить всё
message('<'+sald_f+'>'+chr(13)+sald_f);
А (= true) зачем нужноКод: Выделить всё
..... if (sal_f='')=true then { ..... message(Sal_F) //дает пусто, даже если в переменной пустота } .....
- 
				Max_Fin
 - На пенсии
 - Сообщения: 797
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: г. Тюмень
 - Контактная информация:
 
До всех условий запишите значение вашей переменной в лог
			
			
									
						
										
						Код: Выделить всё
LogStrToFile('c:\log.txt', aaa);