Форум: "Начинающим";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
ВнизПеревод из строки в число Найти похожие ветки
← →
_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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c