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

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

Как узнать число-ли переменная S:String; [D6, WinXP]


Rentgen ©   (2004-10-13 10:48:00) 

Здравствуйте.
К делу:

var
S:String;
...
begin
//Как узнать число-ли переменная S?(пр.: S:='1999');
end;


Ega23   (2004-10-14 09:47:00) [1]

jack128 ©   (14.10.04 00:14) [9]

Ega23 ©   (13.10.04 10:55) [3]
icWasya ©   (13.10.04 16:45) [8]

не было оговорено, что имеется в виду именно ЦЕЛЫЕ числа. А для вещественных Val считает, что разделитель целой и дробной части - всегда точка.


А DecimaleSeparator тогда для чего?


begin...end   (2004-10-14 09:09:00) [2]


> [14] SergP.   (14.10.04 09:00)


> Он же написал что это ИЗВРАТ

А, понятно, я просто думал, что он всё с [1] по [11] извратом посчитал.


SergP.   (2004-10-14 09:00:00) [3]


>  [13] begin...end ©   (14.10.04 08:27)
>
> > [12] tsalBSM   (14.10.04 08:21)
>
> Ты про множества не слышал, что ли?


Он же написал что это ИЗВРАТ


begin...end   (2004-10-14 08:27:00) [4]


> [12] tsalBSM   (14.10.04 08:21)

Ты про множества не слышал, что ли?


tsalBSM   (2004-10-14 08:21:00) [5]

Изврат

function Func(S: string): Boolean;
var X:integer;
begin
Result := False;

for X := 1 to Length(S) do begin
  if (S[X] = '0') or
     (S[X] = '1') or
     (S[X] = '2') or
     (S[X] = '3') or
     (S[X] = '4') or
     (S[X] = '5') or
     (S[X] = '6') or
     (S[X] = '7') or
     (S[X] = '8') or
     (S[X] = '9') or
     (S[X] = '.') or
     (S[X] = #20) then continue else exit;
end;

Result := true;
end;


GanibalLector   (2004-10-14 02:37:00) [6]

2 Homa_Programer ©
Вообще-то надо внимательно читать!!!См  [5]


Homa_Programer   (2004-10-14 02:35:00) [7]

а почему бы не использовать старый добрый, опробованный try..except???


jack128   (2004-10-14 00:14:00) [8]

Ega23 ©   (13.10.04 10:55) [3]
icWasya ©   (13.10.04 16:45) [8]

не было оговорено, что имеется в виду именно ЦЕЛЫЕ числа. А для вещественных Val считает, что разделитель целой и дробной части - всегда точка.


icWasya   (2004-10-13 16:45:00) [9]

правильный ответ дал Ega23 ©[3]
Val + F1


piople   (2004-10-13 11:48:00) [10]

Напиши функцию в которой попробуй строку посимволько сравнивать с множеством символов(0 до 9) и если что не так то результат функции борода, иначе все ок)))


Reindeer Moss Eater   (2004-10-13 11:39:00) [11]

У числовых типов данных есть диапазон допустимых значений.
У строк допустимая длина - 2Гб


Семен Сорокин   (2004-10-13 11:34:00) [12]

TryStrToInt, StrToIntDef


antonn   (2004-10-13 11:25:00) [13]

А можно из строки выковырять только цифры и делиметры. Будет число, даже если изначально там случайно пробел поставили.


Ega23   (2004-10-13 10:55:00) [14]

Val + F1


Reindeer Moss Eater   (2004-10-13 10:52:00) [15]

Если в строке все символы - цифры или разделители тысяч (кроме первого символа, могущего быть знаком), есть не более одного разделителя дробной части числа то эта строка почти наверняка является представлением числа


Rentgen   (2004-10-13 10:50:00) [16]

Почему-то мне кажется, что есть способ не схожий с try-except


Наверх

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