![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определить число ли В EXCEL??? [D6, Win2k, WinXP]
Poirot © (2002-09-13 18:57:00)Сабжик!!! Это надо сделать в ДЛЛ и передавать как параметр строку и узнать числовая ли она!!! Помогите!!!
Алгоритм желателен на основе ВынАПЫ и стандартных Паскалевских функ и прощедур!!!
Я САМ ТОЖЕ ДУМАЮ, но 1 хорошо а....
drpass (2002-09-14 12:26:00) [1]А что, функции sysutils - нестандартные?
Ну если не нравится floattostr, то возьми древнюю паскалевскую функцию val - даже без try..except обойдешься. Только DecimalSeparator должен быть точкой, а не запятой
Poirot (2002-09-14 07:44:00) [2]
> floattostr(s);
Надо без этого!!! это уже SysUtils
drpass (2002-09-14 02:10:00) [3]Кхм, извините, что вмешиваюсь...
Конечно, функция, которая примет 575.4757.558585...57 за нормальное число - это очень прикольно, но все-таки попробуйте такой вариант:
function IsVal(S:string):boolean;
begin
result:=true;
try
floattostr(s);
except
result:=false;
end;
end; ?
Poirot (2002-09-14 02:00:00) [4]Проблема-то немного хуже
"-" впереди возможна запись через мантису!!!
DenKop (2002-09-13 23:30:00) [5]Самое простое, что можно придумать без всяких ВинАПЫ:
function IsVal(Str:string):boolean;
var
i:integer;
mn:set of integer;
begin
mn:=[0..9]; Result:=True;
for i:=1 to Length(Str) do
if (not(Str[i] in mn)) and (Str[i]<>DecimalSeparator) then
begin
Result:=False;
Break;
end;
end;
P.S. Возможны ошибки, писал на "лету"
Poirot (2002-09-13 18:58:00) [6]Варианты на С тоже подойдут!!!