Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

Проверить значение первого символа   Найти похожие ветки 

 
HumanToString   (2006-11-05 10:19) [0]

Из элемента TEdit необходимо проверить первый символ на принадлежность к цифре. Т.е. проверить является ли первый символ цифрой. Как это лучше сделать?

1.
 if (Edit1.Text[1] in ["0".."9"]) then
   ShowMessage("dd");


2.
 if (StrToIntDef(Edit1.Text, 0) <> 0) then
   ShowMessage("dd2");


Или и то и то, совсем не то?


 
HumanToString   (2006-11-05 10:20) [1]

Т.е. во втором случае = 0,  не <> 0.


 
HumanToString   (2006-11-05 10:21) [2]

Нет, всё правильно, <>. Что-то  совсем с головой плохо...


 
Virgo_Style ©   (2006-11-05 10:39) [3]

по (2) :
- 0 не является цифрой? Я не помню...
- пропущено Edit.Text[1]

по обоим - проверка Edit1.Text>"" .

imho, следует использовать (1).


 
HumanToString   (2006-11-05 11:02) [4]


> - 0 не является цифрой? Я не помню...


Спасибо. Что-то я не сообразил про 0.


 
HumanToString   (2006-11-05 11:45) [5]

Тогда вопрос ещё один: а как лучше проверять наличие текста:
1.
if Edit.Text <> ""
2.
if Length(Edit1.Text) <> 0


 
Anatoly Podgoretsky ©   (2006-11-05 11:50) [6]

Что значит лучше, результат то одинаковый, не хуже и не лучше


 
HumanToString   (2006-11-05 13:23) [7]


> Что значит лучше

Ну не знаю, ведь всегда есть вариант который лучше.


 
palva ©   (2006-11-05 14:02) [8]

> Ну не знаю, ведь всегда есть вариант который лучше.
Так думал ныне покойный буриданов осел.


 
palva ©   (2006-11-05 14:03) [9]

Я, конечно, не хотел никого обидеть. Просто неудачно пошутил.


 
Leonid Troyanovsky ©   (2006-11-05 14:09) [10]


> palva ©   (05.11.06 14:02) [8]

> Так думал ныне покойный буриданов осел.

И ныне здравствует, в отличии от его создателя,
Царствие ему небесное.

> palva ©   (05.11.06 14:03) [9]

> Я, конечно, не хотел никого обидеть.


Буридана, что ли?
Дык, он примерно для этого и ввел оное понятие.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2006-11-05 14:41) [11]

> HumanToString  (05.11.2006 13:23:07)  [7]

> ведь всегда есть вариант который лучше

Это бессмысленный набор букв, критерии давай.


 
Anatoly Podgoretsky ©   (2006-11-05 14:43) [12]

> palva  (05.11.2006 14:03:09)  [9]

Почему неудачно, как раз по делу, критериев четких и установленых
ограничений у него не было, вот и помер бедняжка. А было бы ограничение -
если слева и справа равны, то бери слева, то и жил бы до естественной
смерти.


 
Loginov Dmitry ©   (2006-11-05 17:32) [13]

HumanToString   (05.11.06 11:45) [5]
Тогда вопрос ещё один: а как лучше проверять наличие текста:
1.
if Edit.Text <> ""
2.
if Length(Edit1.Text) <> 0


Лучше 1. Букв меньше.

Если в Edit букв много, используй 2.


 
Percent   (2006-11-05 17:49) [14]

Length(Edit1.Text) <> 0

Этот быстрее.


 
Leonid Troyanovsky ©   (2006-11-05 17:53) [15]


> Loginov Dmitry ©   (05.11.06 17:32) [13]

> Лучше 1. Букв меньше.
> Если в Edit букв много, используй 2.


Дык, ручки уж устали, в Edit заносить.
Можно 1?

--
Regards, LVT.


 
Ketmar ©   (2006-11-05 17:56) [16]

>[14] Percent 5-Nov-2006, 17:49
>Этот быстрее.
факт ли? по-моему, <> "" -- это просто сравнение с nil. так что фиг там разницы. может, даже Length() медленней. %-)


 
Anatoly Podgoretsky ©   (2006-11-05 18:02) [17]

> Ketmar  (05.11.2006 17:56:16)  [16]

Конечно медленнее, второй вариант кроме сравнения с nil еще и извлекает этот
член структуры и возвращает его. Смотреть надо код в окне CPU


 
Ketmar ©   (2006-11-05 18:04) [18]

>[17] Anatoly Podgoretsky(c) 5-Nov-2006, 18:02
>Смотреть надо код в окне CPU
так это ж среду запускать. лениво. %-)


 
Ketmar ©   (2006-11-05 18:05) [19]

кстати, хоть и медленей, а я всё равно Length() использую. дурное наследие TP/BP...


 
Loginov Dmitry ©   (2006-11-05 18:08) [20]

Ketmar ©   (05.11.06 18:05) [19]
кстати, хоть и медленей, а я всё равно Length() использую.


Из-за этого все проги так тормозят, так тормозят...
:)


 
Anatoly Podgoretsky ©   (2006-11-05 18:08) [21]

> Ketmar  (05.11.2006 18:05:19)  [19]

Результат одинаковый и это не тот случай когда нужно беспокоиться об
оптимизации


 
Percent   (2006-11-05 18:09) [22]

Я так себе подозреваю, что "" - не nil. Я так думаю, что "" - это строковая константа. И сравнение, думаю, идет с помощью строковых команд процессора (или как там оно реализовано в Delphi?).
А вот Length() - это просто извлечение длины строки (которая хранится во вполне определенном месте) и целочисленное сравнение с константой.

Поэтому, подозреваю, Length() - быстрее.

Я так себе думаю...


 
Loginov Dmitry ©   (2006-11-05 18:13) [23]

Percent   (05.11.06 18:09) [22]
Я так себе подозреваю, что "" - не nil


А зря...


 
Ketmar ©   (2006-11-05 18:14) [24]

"а конi де, де конi?!" (ц)
проверил:

b := (s = ""):
cmp dword ptr [s],0
setz bl
--------
b := (Length(s) = 0);
mov eax,[s]
call @LStrLen


увы и ах. сравнение с "" шустрее. и оно-таки nil. %-)


 
Anatoly Podgoretsky ©   (2006-11-05 20:10) [25]

> Percent  (05.11.2006 18:09:22)  [22]

Неправильной стороной ты ешь бутерброд дядя Федор



Страницы: 1 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.047 c
2-1162622226
Shopot
2006-11-04 09:37
2006.11.19
Печать.


2-1161636887
vidiv
2006-10-24 00:54
2006.11.19
JvDBTreeView


15-1162351507
Slider007
2006-11-01 06:25
2006.11.19
С днем рождения ! 1 ноября


15-1162221542
Lebedev
2006-10-30 18:19
2006.11.19
MediaPlayer не приигрывает avi видео-ролик цифрового фотика.


2-1162203378
Access
2006-10-30 13:16
2006.11.19
Acces, ADO - как получить структуру таблицы?