HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail | |||
| |||
|
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 |