Главная страница
    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.47 MB
Время: 0.007 c
6-18504
Pavel
2003-07-16 11:03
2003.10.06
нужен пример работы с почтой .. атачь как вытянуть ?


14-18636
Soft
2003-09-17 01:55
2003.10.06
Программа выборочной рассылки электронной почты


1-18380
Help
2003-09-22 18:04
2003.10.06
Иконка


1-18298
Kremen
2003-09-24 09:13
2003.10.06
Генерация клика мышкой по рабочему столу


1-18475
3APA3A
2003-09-24 11:59
2003.10.06
проблема с ValueListEditor ом...





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