![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как проверить строку если это число, или нет? [D6, Win95/98]
mike_yz © (2002-10-10 19:25:00)как проверить строку введённая пользователем приложения является ли она числом или нет?
yozhik (2002-10-10 20:53:00) [1]а если 12,3 и 12.3 - это одно и тоже, внезависимости от DecimalSeparator, только одно из "чисел" надо переконвертить ???
а как быть с 12, и с 012 - это число или нет ???
Есть решение для всех случаев, может не совсем правильное но рабочее:
function IsDigit(AVal: variant): boolean;
var sVal: string;
begin
sVal := Trim(String(AVal));
if (sVal="") or (sVal[1] in [".",",","0"]) or
(sVal[Length(sVal)] in [".",","]) then
begin
Result := False;
Exit;
end;
try
DecimalSeparator := ",";
StrToFloat(sVal);
Result := true
except
try
DecimalSeparator := ".";
StrToFloat(sVal);
Result := true
except
Result := False;
Exit;
end
end;
end;
Best Before 2024 (2002-10-10 19:45:00) [2]
StrToFloatDef
Уже и сам запутался :(
TTCustomDelphiMaster (2002-10-10 19:43:00) [3]Ага
Best Before 2024 (2002-10-10 19:39:00) [4]I := StrToIntDef(Str, <какое вряд ли можно ввести>)
if I = <какое вряд ли можно ввести> then не число
FloatToStrDef - аналогично
или TTCustomDelphiMaster © (10.10.02 19:37)
только
StrToFloat :))
TTCustomDelphiMaster (2002-10-10 19:37:00) [5]try
floattostr
except
не число
end;
Best Before 2024 (2002-10-10 19:36:00) [6]2 . (10.10.02 19:35)
А 12,,3,4 - Это тоже число :))
. (2002-10-10 19:35:00) [7]if not ( s[i] in ["0".."9", DecimalSeparator ) then
Best Before 2024 (2002-10-10 19:32:00) [8]2 KaPaT © (10.10.02 19:29)
А 12.34 - это что, не число? или 12,34
. (2002-10-10 19:30:00) [9]я чтото слышал что обратные лупы быстрее работают это так?
KaPaT (2002-10-10 19:29:00) [10]я обычно так делал....
n:=s.Length;
for i:=1 to n do
If not (s[i] in ["0".."9"] then <значит не число>
Дальше уж сам обработай если это самый оптимальный вариант...пусть выскажутся другие
Best Before 2024 (2002-10-10 19:28:00) [11]см функции
StrToInt Def
FloatToStr Def