Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.133 c
15-1162042337
Владимир_мпп
2006-10-28 17:32
2006.11.19
Альтернативный WINS-Сервер


4-1151583654
XTD
2006-06-29 16:20
2006.11.19
Звук с компьютера в телефонную линию


15-1162262217
Mozart
2006-10-31 05:36
2006.11.19
Подскажите начинающему железячнику :)


2-1162475210
lobach
2006-11-02 16:46
2006.11.19
Реестр


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский