![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странный глюк Делфи6 [D6]
Чапаев © (2007-10-24 12:30:00)Проверить символ на "цифру". Код, например, такой:
if (ACode128[I] < '0') or (ACode128[I] > '9') then Exit;. ACode128[I] в дебагере равно '2', попадаем в Exit. Пробовал ACode128[I] in ['0'..'9'] и Ord(ACode128[I]) - Ord('0') in [0..9] -- результат тот же?
Шо с этим чудом делать?
Германн (2007-10-25 02:01:00) [1]
> DrPass © (25.10.07 01:54) [7]
>
>
Но даже если использовались ShortString или опция {$H-} всё равно не понятны слова
> ACode128[I] в дебагере равно '2', попадаем в Exit.
DrPass (2007-10-25 01:54:00) [2]
> Dimaxx © (25.10.07 01:19) [5]
> Скорее всего I изначально равно 0, следовательно, вместо
> символа строки проверялась длина
Длина в нулевом символе строк не хранится. Это только в оставшихся в наследство от Турбо-Паскаля ShortString'ах
Германн (2007-10-25 01:29:00) [3]
> Leonid Troyanovsky © (24.10.07 13:41) [4]
...
> Декларацию ACode128 - в студию.
Присоединяюсь. Действительно интересно.
Кстати и сам код цикла тоже интересен.
Dimaxx (2007-10-25 01:19:00) [4]Скорее всего I изначально равно 0, следовательно, вместо символа строки проверялась длина.
Leonid Troyanovsky (2007-10-24 13:41:00) [5]
> Чапаев (24.10.07 12:30)
> Шо с этим чудом делать?
Декларацию ACode128 - в студию.
--
Regards, LVT.
Reindeer Moss Eater (2007-10-24 12:39:00) [6]if ('2' < '0') or ('2' > '9') then
ShowMessage('ни хрена себе!')
else
ShowMessage('Это был оптический обман');
Чапаев (2007-10-24 12:38:00) [7]> А в ShowMessage(ACode128[I]) что видишь при этом ?Всё правильно вижу.
В принципе, уже обошёл (введением промежуточной переменной), но глюк неприятный...
Сергей М. (2007-10-24 12:32:00) [8]
> ACode128[I] в дебагере равно '2',
А в ShowMessage(ACode128[I]) что видишь при этом ?