Эта проблема долго не давала мне покоя. Я пользовался try…except, но в режиме отладки это приносило одни проблемы.
В очередной раз я столкнулся с необходимостью проверить является ли строка числом… И написал наконец-то скрипт, не использующий метод исключения.
Function ifInt(S:String):Boolean; Var i,j: Integer; count: Integer; IntBool: Boolean; IntList: String; begin IntBool := True; IntList := '0123456789'; // Таким образом мы можем проверить строку на обязательное наличие нужных нам символов. В данном примере это числа от 0 до 9 for i := 1 to length(S) do begin count := 0; for j := 1 to length(IntList) do begin if S[i]<>IntList[j] then count := count + 1; end; if count = length(IntList) then begin IntBool := False; Break; end; end; Result := IntBool; end;
10.06.2013 в 13:31
можно было немного покороче:
begin
Result := False;
for i:=1 to Length(S) do
if not (S[i] in [‘0’..’9′]) then exit;
Result := True;
end;
04.05.2014 в 01:15
Автор, Вы упорный человек, это похвально. Однако, иногда все же стоит читать справку. Для решения вышеупомянутой проблемы есть функция TryStrToInt.
07.05.2014 в 22:00
Stertot
Иногда проще придумать свое решение, когда не можешь найти готовое. Честно — справку никогда не читал.