Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перевод из строки в число [D7, XP]


Страницы:   1 2

_vl_ ©   (2007-05-22 17:06:00) 

Есть задача, надо из строкового представления перевести в число.
Есить код:
var
   year: integer;
   str: string[4];
begin
   str := Copy(s, 7, 4); // здесь str принимает значение '1984'
   year := StrToInt(str); // а здесь он ничего не преобразует  
end;

Никаких ошибок не выдает, просто переменная year не содержит никакого значения.
В чем может быть проблема?


{RASkov}   (2007-05-22 23:26:00) [1]

> [20] Anatoly Podgoretsky ©   (22.05.07 20:59)

> деление на 0 это не ошибка

А что это? Прикол?)  Или...

> Уже давно другая логика,

...это имелось ввиду для конкретной ветки?


Johnmen   (2007-05-22 21:05:00) [2]

>>Ну ты навёл-то после выполнения строки кода с присваиванием? :)))))))
>
>_vl_   (22.05.07 18:07) [18]
>
>да

Т.е. когда процедура [0] уже выполнена, т.е. когда локальные переменные уже деинициализированы и несуществуют....:)))


Anatoly Podgoretsky   (2007-05-22 20:59:00) [3]

> {RASkov}  (22.05.2007 20:16:19)  [19]

Уже давно другая логика, деление на 0 это не ошибка


{RASkov}   (2007-05-22 20:16:00) [4]

> [18] _vl_   (22.05.07 18:07)

Выполни вот этот код с оптимизатором, и удивись, что при нажатии на кнопку даже сообщение об ошибке не показывается...
procedure TForm1.Button1Click(Sender: TObject);
var X, Y, Z: Integer;
begin
 X:=0;
 Y:=5;
 Z:=Y div X;
end;

А ведь должно по логике... Так же и наводом мышки тоже будешь получать нули....
А вот так все ок:
procedure TForm1.Button1Click(Sender: TObject);
var X, Y, Z: Integer;
begin
 X:=0;
 Y:=5;
 Z:=Y div X;
 Tag:=Z;
end;

А казалось бы ничего и не поменялось...
Твой код из [0] копия моего первого примера в этом сообщении..


_vl_   (2007-05-22 18:07:00) [5]

да


Johnmen   (2007-05-22 17:32:00) [6]


> _vl_   (22.05.07 17:29) [15]
> >johnmenНавел на эту переменную мышку и там показывается
> что содержится в переменной

Ну ты навёл-то после выполнения строки кода с присваиванием? :)))))))


_vl_   (2007-05-22 17:31:00) [7]

Еще раз всем спасибо.


_vl_   (2007-05-22 17:29:00) [8]

>johnmen

Навел на эту переменную мышку и там показывается что содержится в переменной


Плохиш   (2007-05-22 17:29:00) [9]


> _vl_   (22.05.07 17:28) [12]
> Отключил оптимизатор, идобавил цикл с использованием этой
> переменной

Рыдал, можешь включать оптимизатор взад :-))


_vl_   (2007-05-22 17:28:00) [10]

Отключил оптимизатор, и добавил цикл с использованием этой переменной, все оказывается работает.
Спасибо всем кто откликнулся на такой глупый вопрос.


Плохиш   (2007-05-22 17:28:00) [11]


> Johnmen ©   (22.05.07 17:24) [11]
> Да вообще, крайне любопытно, каким образом автор увидел
> (унюхал?), что переменная year не содержит значения?

Мышку на переменную навёл ;-)


Johnmen   (2007-05-22 17:24:00) [12]

Да вообще, крайне любопытно, каким образом автор увидел (унюхал?), что переменная year не содержит значения?


Johnmen   (2007-05-22 17:23:00) [13]


> Плохиш ©   (22.05.07 17:16) [7]
> Что-то мне подсказывает, что оптимизатор и эту строчку выкинет :-))

Не посмеет...:)


Плохиш   (2007-05-22 17:20:00) [14]


> _vl_   (22.05.07 17:19) [8]
> А как отключить оптимизатор?

В свойствах проекта, на закладке компилятора.


_vl_   (2007-05-22 17:19:00) [15]

А как отключить оптимизатор?


Плохиш   (2007-05-22 17:16:00) [16]


> Johnmen ©   (22.05.07 17:14) [6]

Что-то мне подсказывает, что оптимизатор и эту строчку выкинет :-))


Johnmen   (2007-05-22 17:14:00) [17]

Просто надо добавить ещё одну бессмысленную строчку:
if year=0 then;
:)))


Плохиш   (2007-05-22 17:13:00) [18]


> _vl_   (22.05.07 17:06)  

Кстати, рекомендую сообщения и предупреждения компилятора почитать, много нового о себе узнаешь...


Amoeba   (2007-05-22 17:12:00) [19]


> переменная year не содержит никакого значения.

А теперь расскажи честн ому народу, как пришел к такому выводу?


Плохиш   (2007-05-22 17:11:00) [20]


> Никаких ошибок не выдает, просто переменная year не содержит
> никакого значения.
> В чем может быть проблема?

Оптимизатор отключи...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо