Главная страница
    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.012 c
14-18576
Анатолий
2003-09-18 10:52
2003.10.06
CanClose


8-18490
Urvin
2003-06-07 03:03
2003.10.06
Работа с палитрой цветов


3-18231
jack128
2003-09-16 20:51
2003.10.06
странное поведение IbQuery


14-18593
Mike_Goblin
2003-09-17 20:05
2003.10.06
Требуется тестировщик


14-18639
Сатир
2003-09-16 20:34
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский