Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];

Вниз

Как определить число в строке или нет ?   Найти похожие ветки 

 
Дмитрий Д.   (2002-04-26 14:09) [0]

Уважаемые !
Интересует возможность БЫСТРОГО определения: в строке число или нет ?
я знаю варианты:перебор посимвольно(медлено) и с помощью исключения (пока не устраивает, если ничего не найду придется делать так)
может ктото знает другие варианты ?
Заранее спасибо!


 
Дмитрий Д.   (2002-04-26 14:12) [1]

Забавно:)
никогда еще со смной не было чтобы у когото еще был практически одинаковый вопрос как у меня (у Juli)


 
Виктор Щербаков   (2002-04-26 14:13) [2]


> перебор посимвольно(медлено)

Это почему же медленно?


 
Song   (2002-04-26 14:15) [3]

А Pos не подходи?


 
MBo   (2002-04-26 14:15) [4]

val
strtointdef


 
Dimok   (2002-04-26 14:18) [5]

procedure Val(S; var V; var Code: Integer);
эта процедура переводит строку S в V (real или integer), если в строке S содержалось не число, то в Code возвращается номер первого нецифрового символа, если все нормально, то Code=0.


 
Дмитрий Д.   (2002-04-26 14:50) [6]

Всем спасибо огромное!!!
особое спасибо MBo, Dimok
совсем блин про Val забыл :)
Еще раз всем спасибо!


 
Дмитрий Д.   (2002-04-26 15:22) [7]

Только вот в чем загвоздка... :)
если число более 999999999
то все... приехали...


 
MBo   (2002-04-26 15:33) [8]

i64:=StrToInt64Def(s,-1);
if i64=-1 then...


 
Дремучий   (2002-04-26 19:52) [9]

2 MBo
а если в строке до дого была -1?

правильней будет так
//если число дробное, нужно будет еще подправить
//Length(Trim("-1.0000000000002301")) > 2

function IsInt64(i64:string; var r:longint):boolean;
var j:integer;
begin
if Length(Trim(i64)) > 2
then begin
r:= StrToInt64Def(i64,-1)
if r=-1 then result:= false;
end
else begin
Val(i64,r,j);
result:= j =0;
end;
end;

if IsInt64("23545",r)
then ....
//в r - уже число 23545 ;)
else ....
//значит это было не число :(


 
Дремучий   (2002-04-26 19:56) [10]

это шутка такая!!!
;)


 
Anatoly Podgoretsky   (2002-04-26 20:19) [11]

Дмитрий Д. © (26.04.02 14:12)
ничего общего, у тебя про число, а там про цифры



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
3-26041
Тим
2002-04-16 21:24
2002.05.09
Печать в два столбца в Quick Report


14-26222
Merlin
2002-03-30 15:44
2002.05.09
Чокопай и Эйфелева башня


1-26087
Juli
2002-04-26 14:09
2002.05.09
Работа со строками


1-26130
HDD
2002-04-24 15:29
2002.05.09
Почта


14-26272
Keymaster
2002-03-31 16:15
2002.05.09
Утановка Win2K





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