Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.07;
Скачать: CL | DM;

Вниз

Есть ли в Delphi что-то типа is_number?   Найти похожие ветки 

 
cvg   (2006-12-18 13:03) [0]

Сабж. Есть строка в два байта, в которой могут быть либо цифры, либо какие-то другие символы. Как из различить?


 
clickmaker ©   (2006-12-18 13:06) [1]

TryStrToInt
IsCharAlpha() - win api


 
cvg   (2006-12-18 13:08) [2]

спасибо


 
Sha ©   (2006-12-18 19:21) [3]

TryStrToInt вроде через Val сделана, так что не советую использовать.
Непосредственная проверка - самое простое:

if (s[1] in ["0".."9"]) and (s[2] in ["0".."9"]) then ...


 
Германн ©   (2006-12-19 01:16) [4]


> Sha ©   (18.12.06 19:21) [3]
>
> TryStrToInt вроде через Val сделана, так что не советую
> использовать.

Не советуешь, потому что Val чем-то плоха по твоему?


 
Sha ©   (2006-12-19 10:43) [5]

> Германн ©   (19.12.06 01:16) [4]
> Не советуешь, потому что Val чем-то плоха по твоему?


Я так сказал или ты сам за меня додумал? ))

Было сказано лишь то, что Val не подходит для проверки символьного
содержимого байтов в нашем случае.

Пример, приведенный ниже, показывает, как строка, не содержащая цифр,
обрабатывается данной функцией без ошибок.

Легко убедиться, что в нашем случае подобное использование Val приводит
к неверному заключению о содержимом строки.

Об этом часто забывают, что в данном случае, произошло и с тобой.

Ничего страшного.

procedure TForm1.Button5Click(Sender: TObject);
var
 s: string;
 i, c: integer;
begin
 s:="$F";
 Val(s,i,c);
 ShowMessage(Format("%d %d",[i,c]));
end;


Если думаешь, что это единичная аномалия, то можешь дополнить
тестовый пример такими строками: " 1", "0x1".


 
Sha ©   (2006-12-19 11:04) [6]

> Германн ©   (19.12.06 01:16) [4]

Сорри за чересчур вежливый пост - сработал рефлекс на навешивание ярлыков.
Возможно, срабатывание было ложным )


 
Германн ©   (2006-12-19 14:16) [7]


> Sha ©   (19.12.06 10:43) [5]

Не убедил. Все примеры содержат числа.


> Sha ©   (19.12.06 11:04) [6]
>
> > Германн ©   (19.12.06 01:16) [4]
>
> Сорри за чересчур вежливый пост

Пустяки. С кем не бывает, особливо по утрам :)


 
Sha ©   (2006-12-19 15:48) [8]

> Германн ©   (19.12.06 14:16) [7]
> Не убедил. Все примеры содержат числа.


Автору надо отличить цифры от других символов

Думаю, знаки пробела, доллара и буква "x" все же относятся
к другим символам, не так ли?


 
Anatoly Podgoretsky ©   (2006-12-19 16:04) [9]

> Sha  (19.12.2006 15:48:08)  [8]

Именно цифры, а не числа и набор их указан только 0..9 так что даже об минусе не надо беспокоиться, не говоря уж об научной нотации. Задача на проход в цикле, при этом по вопросу даже не требуется, что бы число было допустимым. Например 111111111111111111111111111111111111111 это нормальное число, но не допустимое для целых в Дельфи.


 
Германн ©   (2006-12-19 16:07) [10]


> Sha ©   (19.12.06 15:48) [8]
>
> > Германн ©   (19.12.06 14:16) [7]
> > Не убедил. Все примеры содержат числа.
>
> Автору надо отличить цифры от других символов
>
> Думаю, знаки пробела, доллара и буква "x" все же относятся
> к другим символам, не так ли?

Теперь убедил :)



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

Текущий архив: 2007.01.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
2-1166517310
vitv
2006-12-19 11:35
2007.01.07
Создание круглой кнопки


2-1166174674
Legolas
2006-12-15 12:24
2007.01.07
Работа с окнами


15-1166094425
dimonf
2006-12-14 14:07
2007.01.07
Нужен шаблон рекомендательного письма на английском языке


15-1166395163
Nic (from home)
2006-12-18 01:39
2007.01.07
Ряды и дифференциальные уравнения


2-1166374385
Vladimir1984
2006-12-17 19:53
2007.01.07
Как отрыть файл BMP в виде цифровой таблице?