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

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

Проверка числового значения


Страницы:   1 2

wewill ©   (2006-10-17 19:38:00) 

Есть такая тривиальная задача: необходимо проверить стринговую переменную, является ли её значение числом. На мой взгляд это всё решается как то приблизительно так:
function IsNumber(s: string): Boolean;
var
 i: Integer;
begin
 Result := False;
 for i := 1 to Length(s) do
   case s[i] of '0'..'9':;
    else Exit;
   end;
 Result := True;
end;


Но залез в гугл, я обнаружил ещё интересный способ:
function IsNumber(mStr: string): Boolean;
var
 I: Real;
 E: Integer;
begin
 Val(mStr, I, E);
 Result := E = 0;
 E := Trunc(I);
end;


Что лучше?


Ketmar   (2006-10-17 20:25:00) [21]

и почему все забыли о const?

> [3]
тело except -- лишнее. переменная -- лишняя. про TryStrToInt() тоже не помним. низачот, короче.


RASkov   (2006-10-17 20:23:00) [22]

> [0] wewill   (17.10.06 19:38)

function IsNumber(s: string): Boolean;
var
i: Integer;
begin
Result := False;
try
 StrToInt(S);
 Result := True;
except Result := False; end;
end;


Palladin   (2006-10-17 20:12:00) [23]

1 вариант: да, в машину лучше влезать через багажник
2 вариант: классика, но интересного ничего нет, достаточно прочитать книжечку небольшую, про основы паскаля, турбо паскаля...


Ketmar   (2006-10-17 19:51:00) [24]

и то фигня, и то фигня. %-)


Страницы:   1 2

Наверх

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