HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail


 
В этот день много лет назад...
23 октября. В 1853 году (165 лет назад) - Начинается конфликт России с Турцией - пролог большой Крымской войны.
 
 

Turbo Pascal Documentation

Процедура Val


     Функция: Преобразует строковое значение в его численное
представление.
     Описание: Val(s : string; v; var код : integer)
     Примечания: Параметр  s  представляет  собой  выражение
строкового  типа.  Параметр v является переменной целого или
вещественного типа. Параметр "код" - это  переменная  целого
типа, которая формирует все число со знаком в соответствии с
синтаксисом, показанном в разделе "Числа" в Главе 1. Функция
Val преобразует строку s в ее численное представление и сох-
раняет результат в v. Если где-либо в строке встречается не-
допустимый  символ,  то  его  номер  сохраняется в параметре
"код". В противном случае этот параметр равен нулю.
     В зависимости от состояния  {R}  и  типа  параметра  v
функция Val по-разному выполняет проверку диапазона.
     Если состояние проверки диапазона установлено, то  есть
задано  {R+}, то выражения, выходящие за границу диапазона,
всегда будут генерировать ошибку времени выполнения.
      Если состояние проверки диапазона сброшено, то есть за-
дано  {R-},  то  выражения, выходящие за границу диапазона,
будут вызываеть эффект, зависящий от их типа. Если  v  имеет
тип  real или longint, то значение v становится неопределен-
ным и в параметре "код" возвращается ненулевое значение. Для
любого другого числового типа в параметре "код" возвращается
нулевое значение, а v будет содержать результат вычислений с
переполнением (если предположить, что строковое значение по-
падает в диапазон представления длинного целого).
     Таким образом, процедуре Val переменную длинного целого
типа  (longint) и перед тем, как присваивать полученное зна-
чение, выполнять проверку диапазона. Например:

        {R-}
        Val('65536', LongIntVar, Code);
        if (Code <>0) or
           (LOngIntVar < 0) or (LongIntVar > 65535) then
           ...             { ошибка }
        else
          WordVar := LongIntVar;

     Ограничения: Предшествующие пробелы должны быть  удале-
ны.
     Прочее: См. также процедуру Str.
     Пример:

       var
         i, code : integer;
        begin
          { получить текст из командной строки }
          Val(ParamStr(1), i, code);
          { ошибка при преобразовании в целое значение? }
          if code <> 0 then
             Writeln('Ошибка на позиции :', code);
          else
             Writeln('Значение = ', i);
        end.




HOME