Преобразование целых чисел в строку и обратно
Начнем с рассмотрения специальных функций для преобразования несовместимых типов. Самое частое, что может понадобиться при программировании, — преобразование строк в число и обратно. Допустим, нужно написать программу, в которой пользователь будет вводить число в компонент TEdit. Чтобы получить доступ к содержимому Editl, надо написать Editl.Text. Так мы получим текстовое представление числа. Чтобы его преобразовать, необходимо воспользоваться специальной функцией.
Для преобразования строки в число используется функция strToint. У нее только один параметр — строка, а на выходе она возвращает число,
var
ch:Integer; begin
ch:=StrToInt(Editl.Text); II Преобразовываю Edit1.Text в число end;
В этом примере мы присвоили переменной ch значение, содержащееся в Editl. Text, которое было преобразовано в число. Теперь можно производить математические действия с введенным числом.
Обратное преобразование (превращение числа в строку) можно произвести с помощью функции IntToStr.
var
ch:Integer; begin
ch:=StrToInt(Edit1.Text); // Преобразовываю Editl.Text в число ch:=ch+1;
Edit1.Text:=IntToStr(ch); // Преобразовываю ch в строку end;
Когда вы преобразовываете строку в число, то должны быть уверенным в том, что строка содержит число. Если в строке будет хоть один символ, не относящийся к цифре, то во время преобразования произойдет ошибка. Чтобы избавиться от ошибок, можно использовать исключительные ситуации, заключая преобразование между try и except. Есть еще один способ — использовать функцию strTointDef, у которой уже два параметра:
- строка, которую надо преобразовать;
- значение по умолчанию, которое будет возвращено, если произошла ошибка.
Итак, наш пример можно подкорректировать следующим образом:
var
ch:Integer; begin
ch:=StrToIntDef(Editl.Text, 0); // Преобразовываю Editl.Text в число end;
В этом примере, если произойдет ошибка во время преобразования, то функция не будет выдавать ошибок, а вернет значение 0.