Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2008, 00:12   #1
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию Как программно узнать не является ли слово в строке числом?

Добрый вечер!
Как программно узнать не является ли слово в строке числом?
Функцию типа Boolean.
Буду очень благодарен за небольшой пример.
Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 07.05.2008, 00:30   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
function (s: string): boolean;
begin
try
strtoint(s);
result:=true;
except
result:=false;
end;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 07.05.2008, 00:39   #3
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

это единственный вариант или есть еще возможности проверить слово в строке? Спасибо!
SkAndrew вне форума Ответить с цитированием
Старый 07.05.2008, 00:43   #4
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Проверил - функция не работает, компилятор выдает ошибку!

function IsNumber(ws : WideString): Boolean;
begin
try
StrToInt(ws);
Result := True;
except
Result := False;
end;
end;

Есть еще варианты.
Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 07.05.2008, 00:59   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

в исходном варианте тип параметра string а не widestring
для widestring попробуй другие функции перевода
вместо strtoint
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 07.05.2008, 01:03   #6
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Спасибо, а какие функции перевода?
SkAndrew вне форума Ответить с цитированием
Старый 07.05.2008, 08:13   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

TryStrToXXX - см. в хелпах.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.05.2008, 09:40   #8
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

Видел способ, где строчка перебиралась и проверялся каждый символ соответствует ли он <0> <1> <2> <3> <4> <5> <6> <7> <8> <9> <,> ну и соответственно условия что запятая одна.
Airou вне форума Ответить с цитированием
Старый 07.05.2008, 12:12   #9
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

в общем способ по извращенски но можно ...
в браузере писал ))) по извращенчески всётаки но вроде должно работать)))
ЗЫ без strtoint
Код:
function ggg(text:string):boolean;
var
zap,i:integer;
begin
zap:=0;
result:=true;
for i:=0 to length(text)-1 do
case text[i] of
'1': if zap > 1 then result := false;
'2': if zap > 1 then result := false;
'3': if zap > 1 then result := false;
'4': if zap > 1 then result := false;
'5': if zap > 1 then result := false;
'6': if zap > 1 then result := false;
'7': if zap > 1 then result := false;
'8': if zap > 1 then result := false;
'9': if zap > 1 then result := false;
'0': if zap > 1 then result := false;
',':  if zap < 2 then zap:= zap+1 else result := false;
else
begin
result:= false;
exit;
end;
end;
end;

а лучше так
Код:
function ggg(text:string):boolean;
var
zap,i:integer;
begin
zap:=0;
result:=true;
for i:=0 to length(text)-1 do
case text[i] of
'1','2','3','4','5','6','7','8','9','0': if zap > 1 then result := false;
',': if zap <= 1 then zap:= zap+1 else result := false;
else
begin
result:= false;
exit;
end;
end;
end;
А может и ошибаюсь
---

Последний раз редактировалось GAGARIN-NEW; 07.05.2008 в 12:26.
GAGARIN-NEW вне форума Ответить с цитированием
Старый 07.05.2008, 12:20   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мда... не нужно велосипед изобретать. Val еще не отменили.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить цвет текста на всей строке в RichEdit, если строка содержит определенное слово?? IIpopoK Общие вопросы Delphi 0 22.06.2008 07:57
в текстовом файле в каждой строке наити самое длинное слово Storm Помощь студентам 4 04.06.2008 15:56
Delphi 7 Как программно узнать мак-адрес? ratttx Свободное общение 3 15.04.2008 08:47
Нужно вывести на экран каждое слово на новой строке. Юлёк PHP 5 28.01.2008 14:57