![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать число-ли переменная 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