Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.10;
Скачать: CL | DM;

Вниз

Перевод из строки в число   Найти похожие ветки 

 
_vl_   (2007-05-22 17:06) [0]

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

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


 
Однокамушкин   (2007-05-22 17:09) [1]


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

ЭТО КАК?????????????

Не может integerная переменная не содержать никакого значения!!!


 
MBo ©   (2007-05-22 17:10) [2]

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

А как ты это узнал - использовал year?


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


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

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


 
Amoeba ©   (2007-05-22 17:12) [4]


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

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


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


> _vl_   (22.05.07 17:06)  

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


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

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


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


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

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


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

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


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


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

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


 
Johnmen ©   (2007-05-22 17:23) [10]


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

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


 
Johnmen ©   (2007-05-22 17:24) [11]

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


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

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


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


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

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


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


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

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


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

>johnmen

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


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

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


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


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

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


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

да


 
{RASkov} ©   (2007-05-22 20:16) [19]

> [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] копия моего первого примера в этом сообщении..


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

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

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


 
Johnmen ©   (2007-05-22 21:05) [21]

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

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


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

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

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

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

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

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



Страницы: 1 вся ветка

Текущий архив: 2007.06.10;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
15-1179200465
Сынок
2007-05-15 07:41
2007.06.10
Как определиться с профессией?


6-1162894543
progmax
2006-11-07 13:15
2007.06.10
статистика TIdHTTPProxyServer


2-1179733608
=Teddy=
2007-05-21 11:46
2007.06.10
Как загрузить в приложение и проиграть mp3 файл?


1-1174323541
_artur
2007-03-19 19:59
2007.06.10
Сохранить TPersistent который часть TComponent


11-1161665410
Моторокер
2006-10-24 08:50
2007.06.10
Как в runtime скрыть/показать скроллбар в TKOLMemo?