Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отключить ошибки при преобразовании StrToInt 
V
    Опции темы
Desperate
Дата 25.2.2011, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 11.10.2006

Репутация: нет
Всего: -1



Приветствую.
Подскажите пожалуйста как избавиться от ошибки преобразования текста в число StrToInt, если например содержится символ в переменной типа String?

Чтоб программа не вылетела, а просто продолжила работу.

Это сообщение отредактировал(а) Desperate - 25.2.2011, 22:23
PM MAIL   Вверх
northener
Дата 25.2.2011, 22:30 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



TryStrToInt 


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Desperate
Дата 26.2.2011, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 11.10.2006

Репутация: нет
Всего: -1



Спасибо большое smile 

Кому инетересно :
Код

If  TryStrToInt(Edit1.Text,i) then edit2.Text:=inttostr(i) else   edit2.Text:='там не число!!!';

PM MAIL   Вверх
northener
Дата 26.2.2011, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Desperate @  26.2.2011,  02:00 Найти цитируемый пост)
Кому инетересно :
Выделить всёкод Pascal/Delphi
1:
    
If  TryStrToInt(Edit1.Text,i) then edit2.Text:=inttostr(i) else   edit2.Text:='там не число!!!';


Кто-то из модераторов, (не помню кто) "настоятельно" мне не советовал использовать слово "бред" в ответах авторам.
Но как ответить "гламурно" на данное сообщение?

Добавлено через 4 минуты и 19 секунд
Цитата(Desperate @  26.2.2011,  02:00 Найти цитируемый пост)
Кому инетересно :
Выделить всёкод Pascal/Delphi
1:
    
If  TryStrToInt(Edit1.Text,i) then edit2.Text:=inttostr(i) else   edit2.Text:='там не число!!!';

Кому интересно:
Код

  If not TryStrToInt(Edit1.Text,i) then edit2.Text:='там не число!!!';



--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Coder
Дата 27.2.2011, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 2
Всего: 11



Цитата(northener @  26.2.2011,  10:40 Найти цитируемый пост)
Кому интересно:

и каким образом в edit2 попадет число?
PM MAIL   Вверх
Desperate
Дата 27.2.2011, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 11.10.2006

Репутация: нет
Всего: -1



Цитата(northener @  26.2.2011,  02:40 Найти цитируемый пост)
Кому интересно:код Pascal/Delphi1:  If not TryStrToInt(Edit1.Text,i) then edit2.Text:='там не число!!!';


Мне по условию требовалось проверить корректное ли число в строке и если да то вывести его xls в тип числовой, иначе вывести строкой. 
В моем ответе просто для наглядности вывожу строкой число иначе тект "там не число". 

В твоем варианте только проверка и если не число то вывести сообщение иначе просто промолчать.



PM MAIL   Вверх
IamDreamer
Дата 28.2.2011, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Цитата(northener @  26.2.2011,  01:30 Найти цитируемый пост)
TryStrToInt  

А для типа Real аналог есть? Чтобы при вводе символов просто появлялось окно с ошибкой. Try except слишком кардинален...
Код

procedure TForm1.Edit4Change(Sender: TObject);
begin
if TryStrToFloat(Edit4.Text, Ra) then Ra:=StrToFloat(Edit4.Text) else MessageDlg('Îøèáêà ïðè ââîäå, íåâîçìîæíî ïðåîáðàçîâàòü â ÷èñëî', mtCustom,[mbRetry],   0);
end;

// Ra - переменная типа Real


Выдаёт ошибку 
Цитата

[Error] Unit1.pas(77): There is no overloaded version of 'TryStrToFloat' that can be called with these arguments


Это сообщение отредактировал(а) IamDreamer - 28.2.2011, 08:34
PM MAIL WWW Jabber   Вверх
CODeRUS
Дата 2.3.2011, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 25.7.2007

Репутация: нет
Всего: нет



Условия учтены?
Первый аргумент - string
Второй аргумент - double

Да и ваш Then ни к чему. При удачном преобразовании в Ra автоматом попадет сконвертированное число
PM MAIL   Вверх
northener
Дата 2.3.2011, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Такого условия в сабже не было! Т.е. про Ёксель не было никаких упоминаний.
Цитата(Desperate @  27.2.2011,  12:17 Найти цитируемый пост)
Мне по условию требовалось проверить корректное ли число в строке


Кстати напомню о процедуре Val. 
Отлично справляется с преобразованием строки в любой "числовой" тип. Что целый, что  вещественный. 
И не вызывает никаких исключений.

Это сообщение отредактировал(а) northener - 2.3.2011, 03:18


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.