Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-68681
SunnyTm
2002-09-30 22:33
2002.10.21
Как поймать исключение по несоответствию маске в EditMask?


3-68658
Leviathan
2002-09-29 23:46
2002.10.21
IBDatabase.CreateDatabase


7-69047
Dmitry Raduzhan
2002-08-13 11:27
2002.10.21
простенький сервис под W2k, XP


1-68852
xGrey
2002-10-10 14:19
2002.10.21
Работа с ключами (параметрами) запуска приложения


1-68807
vugo
2002-10-09 13:21
2002.10.21
Отправка почты под Exchange 5.5





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский