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

Вниз

Как узнать число-ли переменная S:String;   Найти похожие ветки 

 
Rentgen ©   (2004-10-13 10:48) [0]

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

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


 
Rentgen ©   (2004-10-13 10:50) [1]

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


 
Reindeer Moss Eater ©   (2004-10-13 10:52) [2]

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


 
Ega23 ©   (2004-10-13 10:55) [3]

Val + F1


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

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


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

TryStrToInt, StrToIntDef


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

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


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

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


 
icWasya ©   (2004-10-13 16:45) [8]

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


 
jack128 ©   (2004-10-14 00:14) [9]

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

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


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

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


 
GanibalLector ©   (2004-10-14 02:37) [11]

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


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

Изврат

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;


 
begin...end ©   (2004-10-14 08:27) [13]


> [12] tsalBSM   (14.10.04 08:21)

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


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


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


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


 
begin...end ©   (2004-10-14 09:09) [15]


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


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

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


 
Ega23 ©   (2004-10-14 09:47) [16]

jack128 ©   (14.10.04 00:14) [9]

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

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


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



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

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

Наверх




Память: 0.5 MB
Время: 0.023 c
14-1097490812
TUser
2004-10-11 14:33
2004.10.31
Кто просил веселых программистов?


1-1097591583
hooky-mars
2004-10-12 18:33
2004.10.31
Добавление строк в Excel


9-1088292330
MrAngel
2004-06-27 03:25
2004.10.31
Back Buffer Resolution


10-1053349703
From_X
2003-05-19 16:34
2004.10.31
Дайте хоть один пример СallBack-а на Corbe


3-1096586389
Homa_Programer
2004-10-01 03:19
2004.10.31
ms sql