Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизПроверить значение первого символа Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.075 c