{$r-}
VAR LongV : LongInt; WordV : Word;
…
WordV := 0; { начальная очистка WordV }
Val( S, LongV, ErrCode }; { вызов преобразования }
if ErrCode=0
then begin { в S записано число }
if ( LongV >= 0 ) and ( LongV <= 65535 )
then { Все в порядке! }
WordV := LongV
else { Иначе несовместимость! }
WriteLn('Ошибка диапазона при преобразовании ',LongV );
end {then}
else { содержимое S не годится }
WriteLn('Ошибка в строке ',S,' в символе ',S[ErrCode]);
При преобразовании строк в другие целые типы достаточно лишь менять диапазон разрешенных значений в операторе IF.
- 161 -