Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > как проверить тип данных


Автор: kosta 2.4.2005, 01:09
подскажите плз как проверить тип данных введенных в едите например на интегер?

Автор: Fedor 2.4.2005, 01:12
Код

var
  ...
  i,err:integer;
begin
.....
val(Edit1.Text,i,err);
if err<>0 then
 {ТО НЕ ЦЕЛОЕ ЧИСЛО В ЕДИТЕ}
{ИНАЧЕ В ЕДИТЕ ЦЕЛОЕ ЧИСЛО И ОНО ОКАЗАЛОСЬ В ПЕРЕМЕННОЙ i}

Автор: FRAGNATIC 2.4.2005, 01:15
да там всегда будет строка можно например так
Код

i:=StrToIntDef(Edit1.Text,0);
if i=0 then exit
//ну тут делай чё те надо)

Автор: kosta 2.4.2005, 01:20
спасибо!
все получилось

Автор: Петрович 2.4.2005, 01:23
Код
try
  i := StrToInt(Edit1.Text);
except
  ShowMessage('Введено не число');// ... здесь обработка ошибки "не число"
  Abort;
end;
  // ... здесь обработка введенного числа


Цитата(FRAGNATIC @ 2.4.2005, 02:15)
i:=StrToIntDef(Edit1.Text,0);
if i=0 then exit
//ну тут делай чё те надо)

А если пользователь введет число 0?

Автор: FRAGNATIC 2.4.2005, 01:29
а пускай не вводит 0 ) и смотря для какой цели)
согласен варинат не лучший)

Автор: kosta 2.4.2005, 01:30
все работает с кодом от Fedora

Автор: FRAGNATIC 2.4.2005, 01:30
ну или поставить числом 2147483647

Автор: Snowy 4.4.2005, 08:23
IMHO так проще и короче
Код

if not TryStrToInt(Edit1.Text, i) then // не integer

Автор: ~FoX~ 5.4.2005, 15:28
Извращенцы

Val(s: String, v: integer, code: integer);
s - строка в которой есть число
v - возвращение функции
code - если строка содержит символы отличные от цифр, то эта переменная показывает местоположение первого из них.

Автор: Snowy 5.4.2005, 15:34
Медведь так и написал.
Мы всего лишь предложили альтернативные варианты.
кроме того, если посмотришь код TryStrToInt, то увидишь конструкцию основаную на val.
Ее плюс - не нужно заводить переменные - там уже выполнена вся работа по определению и возврату результата.

Автор: ~FoX~ 5.4.2005, 15:44
Цитата(Snowy @ 5.4.2005, 16:34)
Медведь так и написал.

Сори, прогладел........Прости Федор

Автор: Fedor 5.4.2005, 16:55
Цитата
Сори, прогладел........Прости Федор

smile Та ладно...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)