Вниз
Скачать: CL | DM;

как проверить строку если это число, или нет?   Найти похожие ветки 

← →
mike_yz ©   (2002-10-10 19:25) [0]

как проверить строку введённая пользователем приложения является ли она числом или нет?


← →
Best Before 2024   (2002-10-10 19:28) [1]

см функции
StrToInt Def
FloatToStr Def


← →
KaPaT ©   (2002-10-10 19:29) [2]

я обычно так делал....

n:=s.Length;
for i:=1 to n do
If not (s[i] in ["0".."9"] then <значит не число>

Дальше уж сам обработай если это самый оптимальный вариант...пусть выскажутся другие


← →
.   (2002-10-10 19:30) [3]

я чтото слышал что обратные лупы быстрее работают это так?


← →
Best Before 2024   (2002-10-10 19:32) [4]

2 KaPaT © (10.10.02 19:29)
А 12.34 - это что, не число? или 12,34


← →
.   (2002-10-10 19:35) [5]

if not ( s[i] in ["0".."9", DecimalSeparator ) then


← →
Best Before 2024   (2002-10-10 19:36) [6]

2 . (10.10.02 19:35)
А 12,,3,4 - Это тоже число :))


← →
TTCustomDelphiMaster ©   (2002-10-10 19:37) [7]

try
floattostr
except
не число
end;


← →
Best Before 2024   (2002-10-10 19:39) [8]

I := StrToIntDef(Str, <какое вряд ли можно ввести>)
if I = <какое вряд ли можно ввести> then не число

FloatToStrDef - аналогично

или TTCustomDelphiMaster © (10.10.02 19:37)
только
StrToFloat :))


← →
TTCustomDelphiMaster ©   (2002-10-10 19:43) [9]

Ага


← →
Best Before 2024   (2002-10-10 19:45) [10]


StrToFloatDef
Уже и сам запутался :(


← →
yozhik ©   (2002-10-10 20:53) [11]

а если 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;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
1-68841
Denis O.
2002-10-10 13:08
2002.10.21
Окно поверх всех


14-68959
kronprince
2002-09-27 13:10
2002.10.21
Подсел на песенку


1-68695
-=DENIS=-
2002-10-10 18:40
2002.10.21
Сообщение после (при) смены обоев...


1-68718
Itap
2002-10-09 14:36
2002.10.21
RichEdit и Excel


4-69091
Fedorenko S
2002-09-05 20:17
2002.10.21
Hook on Files & Dirs




   Наверх