Форум: "Основная";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
ВнизБыстро проверить что значение в строке это число Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c