Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2009, 14:42   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вообще то нормальное оно и будет
а то вы требуете чтобы у вас в одном символе были 10 разных
конечно такое условие не выполнится
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.06.2009, 14:48   #12
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

Пепел Феникса, обрати внимание на знак <> (не равно).. тоесть там в условии написано если символ не равен 1, не равен 2..не равен 9 - то...
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 06.06.2009, 14:53   #13
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Ntlegend Посмотреть сообщение
тебе же во втором посте ответили.. нумерацыя символов в String'е начинается с 1 а не с 0.. ты пытаешься получить доступ к a[0] в котором хранится #0, тоесть символ окончания строки.. таким образом твоя строка s := s + a[i]; начинается с символа окончания строки, следовательно является пустой.. если ты свой цыкл будешь начинать не с 0 а с 1 - то и твой код будет работать..

S@fer, да StringReplace будет проще.. но если понадобится кроме цыфр еще какие нить символы отсеивать - то проще проверять наличие символа в множестве.. как в моём примере
В общем верно, однако имеются некоторые нюансы. Если это AnsiString (а скорее всего так оно и есть), то он ни куда не получает доступ, поскольку в данном случае a[] на самом деле адрес, а не последовательность символов. И здесь просто пресекается попытка доступа по несуществующему адресу. Не забывайте, что AnsiString пофигу на нуль - это строка паскалевского типа, то есть помимо самой строки имеется информация о месте ее расположения в динамической памяти, а также число символов в строке. И чисто номинально AnsiString может содержать в себе #0 (но я бы не рекомендовал).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобрать запрос mysql iankov SQL, базы данных 2 04.01.2009 14:03
помогите задачу разобрать Настаська Помощь студентам 2 26.11.2008 16:16
Помогите разобрать прогу! Mute Общие вопросы C/C++ 2 28.12.2006 11:34