|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.03.2013, 05:23 | #1 |
Пользователь
Регистрация: 10.01.2013
Сообщений: 56
|
Delphi.Программа выдает ошибку "is not a valid integer value
В программе нужно подсчитать количество смены знака на противоположный.Дан массив чисел.В институте все работало, а дома нет.
Вводила данные в Edit "3", в мемо 2,-3,0 .каждое число с новой строчки Код:
|
30.03.2013, 07:35 | #2 | |||
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
Цитата:
Цитата:
Цитата:
Код:
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" |
|||
30.03.2013, 09:24 | #3 | |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
Цитата:
Автору же предлагаю запустить код в режиме отладки, в Watch добавить "memo1.Lines[i]", посмотреть чему оно равно, а затем скопировать его в отдельную строковую переменную и попробовать преобразовать Кстати, ошибка: "is not a valid integer value" означает: "не правильное целочисленное значение", т.е. "не могу преобразовать".
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Последний раз редактировалось Mixim; 30.03.2013 в 09:27. |
|
30.03.2013, 11:41 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
В Delphi (ну или в Object Pascal) все (ВСЕ) динамические структуры, все компоненты - обращение к первому элементу - это НУЛЕВОЙ индекс. Единственное исключение, т.с. "наследие мрачных времён" - это обращение к символам строки. Так исторически сложилось, что сначала строка (тип String) была типом = array[0..255] of char, где 0 символ строки нёс служебную нагрузку - там была длина строки. Поэтому первый символ строки индексировался через 1 (едииницу). Там и повелось. И позже, когда переменная типа String стала указателем на структуру, всё равно, S[1] - это первый символ строки. НО! Если нам нужна первая строчка из Мемо, то это, разумеется, Memo.Lines[0] |
|
30.03.2013, 11:58 | #5 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
В дополнение к предыдущему сообщению:
тип string - вообще очень интересная штука, в частности, для него несправедливо утверждение "переменная типа String стала указателем на структуру". Она стала не указателем, а неким псевдоуказателем, т.к. структура начинается на самом деле не там, куда показывает указатель, а на несколько байтов раньше. Но это уже чисто специфика string в Delphi. |
30.03.2013, 12:01 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Еще не нужно забывать что StrToInt само по себе генерирует ошибку, так что его нужно менять на TryStrToInt() или StrToIntDef().
I'm learning to live...
|
30.03.2013, 15:17 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
s-andriano, хотя это к данной теме не относится, но я с вашим замечанием полностью согласен, так оно и есть.
Цитата:
Кстати, брать количество чисел из Edit1 - это неудобно и ненадёжно. Гораздо лучше брать числа из Memo, пока строчки не кончились и пока последнее число не равно нулю! И вот тогда, число прочитанных чисел и даст правильное n |
|
30.03.2013, 15:46 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
I'm learning to live...
|
|
30.03.2013, 17:02 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Виталий, и Вы туда же?!!!
Код:
|
30.03.2013, 17:45 | #10 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Бывает...
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi выдает ошибку "Out of memory" | Ol'ga | Помощь студентам | 5 | 30.05.2012 14:31 |
" is not valid integer value. Stringgrid в массив | midletarket | Помощь студентам | 1 | 14.12.2010 14:34 |
Периодически выскакивает ошибка "not valid integer value" | Dux | Общие вопросы Delphi | 11 | 07.10.2010 18:37 |
Ошибка(оконная а не компилятора) "is not a valid integer value" | sinobithug | Помощь студентам | 6 | 14.08.2010 22:49 |
GetTickCount, ошибка "is not a valid integer value" | Zeraim | Общие вопросы Delphi | 3 | 26.01.2010 19:11 |