Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.06;
Скачать: CL | DM;

Вниз

Быстро проверить что значение в строке это число   Найти похожие ветки 

 
Nucl ©   (2003-09-23 18:04) [0]

Какой самый быстрый способ есть чтобы проверить что значение в строке длиной 14 символов это десятичное число ?


 
Skier ©   (2003-09-23 18:06) [1]

StrToInt64


 
pasha_golub ©   (2003-09-23 18:07) [2]

StrToInt(S);
ShowMessage("A number");
except
on EConvertError do ShowMessage("Not a number")
end;


 
Anatoly Podgoretsky ©   (2003-09-23 19:45) [3]

pasha_golub © (23.09.03 18:07) [2]
Будет ошибка, можно даже и не проверять.


 
ZrenBy ©   (2003-09-23 20:16) [4]

И это вы называете САМЫЙ БЫСТРЫЙ СПОСОБ ???

Ню-ню.


 
Fay   (2003-09-23 20:44) [5]

Val


 
SergP ©   (2003-09-23 21:22) [6]


> Nucl © (23.09.03 18:04)
> Какой самый быстрый способ есть чтобы проверить что значение
> в строке длиной 14 символов это десятичное число ?


> Skier © (23.09.03 18:06) [1]
> StrToInt64


Так все же десятичное или целое?

Если целое то проверь в цикле каждый символ или он находится в пределах "0".."9" . Если хоть один из них находится за єтими пределами то тогда строка не удовлетворяет условию. Иначе строка - обязательно есть десятичное (целое) число.
Да.. Кстати. Первый символ может принимать значение "-" (в случае отрицательных чисел).

Для вещественных - будет сложнее...


 
default ©   (2003-09-23 22:25) [7]

посимвольная проверка на асме


 
Andy BitOff   (2003-09-23 23:43) [8]

s:="123123";
asm
mov edx,s
@loop:
mov al,byte ptr[edx]
inc edx
xor al,"0"
cmp al,10
ja @error
cmp byte ptr [edx],0
jnz @loop
//...
jmp @end
@error:
//...
@end:
//...
end;


 
Andy BitOff   (2003-09-23 23:55) [9]

Если надо проверить не целое, то добавь проверку на точку перед xor"ом.


 
Andy BitOff   (2003-09-24 00:06) [10]

Тьфу.... Вместо cmp al,10 надо cmp al,9. Или тогда JAE @error


 
SergP ©   (2003-09-24 11:10) [11]


> Если надо проверить не целое, то добавь проверку на точку
> перед xor"ом.


Да.. Только стоит учесть что точка в строке может быть только одна. Да и тогда стоит ввести проверку есть ли символ "E". вдруг там число с плавающей точкой... ну и естественно прижется учесть что точка после "E" не бывает, но зато там может быть "-" и т.п.


 
Anatoly Podgoretsky ©   (2003-09-24 12:20) [12]

Ну да, например "ECHO"


 
Digitman ©   (2003-09-24 13:24) [13]


> Nucl


что значит "быстро" ?

минимум кода на OP или минимум времени ?



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

Текущий архив: 2003.10.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
3-18260
dream
2003-09-15 08:28
2003.10.06
Как подсчитать общую сумму значений в 1 столбце


6-18514
3APA3A
2003-08-07 22:11
2003.10.06
Свободный порт


1-18427
62mkv
2003-09-25 11:13
2003.10.06
Как написать на Delphi 5 прогу для BDE 4 ?


14-18627
Romka
2003-09-17 17:17
2003.10.06
Systray


1-18379
Vorobyev Sergey
2003-09-20 08:22
2003.10.06
Как оставить консольное прилож. работать, убрав консольное окно?