Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1179386732
News
2007-05-17 11:25
2007.06.10
Сетевая игрушка


2-1179521983
style007
2007-05-19 00:59
2007.06.10
опять этот Invalid floating ....


15-1178619068
X9
2007-05-08 14:11
2007.06.10
Минэкономразвития России — за Linux и Open Source для школ


3-1174640200
Ломброзо
2007-03-23 11:56
2007.06.10
Разбить строку в Oracle


15-1179560996
Ega23
2007-05-19 11:49
2007.06.10
Ну всё, товарищи.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский