Главная страница
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.027 c
2-1179826689
ММК
2007-05-22 13:38
2007.06.10
Мастера, помогите!


2-1179578772
AnSky
2007-05-19 16:46
2007.06.10
Сортировка в StringGrid


15-1179043342
Calibr
2007-05-13 12:02
2007.06.10
Вопрос по RxLibrary 2.5


2-1179472932
wWwWw
2007-05-18 11:22
2007.06.10
CloseFile


15-1179145377
Desdechado
2007-05-14 16:22
2007.06.10
"Что в имени тебе моем?" или Парные имена мужчин и женщин