Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.009 c
14-18597
Шишкин Илья
2003-09-18 09:40
2003.10.06
Нужна помощь


14-18547
Jason
2003-09-16 14:59
2003.10.06
О том, как Виктория Коркина с Анютой Наколкиной беседовали...


14-18590
BasjaB
2003-09-19 10:48
2003.10.06
Кто тут все хотел заработать на своих проектах


1-18460
LinOS
2003-09-26 05:35
2003.10.06
Как определить что форма создана


14-18634
DAC
2003-09-19 10:09
2003.10.06
Улыбнитесь





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский