Приведение типов в Delphi: Преобразование целых чисел в строку и обратно

Преобразование целых чисел в строку и обратно

Начнем с рассмотрения специальных функций для преобразования несовмести­мых типов. Самое частое, что может понадобиться при программировании, — пре­образование строк в число и обратно. Допустим, нужно написать программу, в ко­торой пользователь будет вводить число в компонент 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.

СОВЕТ. Когда необходимо перевести в число строку, которая получается в результа­те ввода пользователем данных, то обязательно учитывайте вероятность ошибки. Дело в том, что пользователи могут случайно нажать до или после ввода числа про­бел и не увидеть этого, а ваша программа в результате выполнит недопустимую опе­рацию, и если вы не отрабатываете корректно возникающие исключительные ситуа­ции, то выполнение программы может завершиться аварийно, что очень плохо. Да, ошибка возникла из-за неверного ввода пользователем, но виноватым будете вы.

dle

Помоги проекту! Расскажи друзьям об этом сайте: