Главная страница
    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
1-18396
BigVova
2003-09-25 17:46
2003.10.06
Правильный подход


14-18622
IGOREK
2003-09-17 17:30
2003.10.06
Посоветуйте русско-украинский переводчик...


3-18220
Voland777
2003-09-17 11:52
2003.10.06
Вывод в программу выходного параметра хранимой проседуры


1-18370
TNT
2003-09-22 19:45
2003.10.06
Что такое точка входа в dll?


4-18671
незнающий
2003-06-28 04:14
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский