Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Дмитрий Д. ©   (2002-04-26 14:09:00) 

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


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

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


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

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


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

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 ....
//значит это было не число :(


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

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


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

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


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

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


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

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


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

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


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

val
strtointdef


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


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

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо