Ради справки. Также возможно преобразовать строку в целое число, используя атрибут 'value
:
variable str : string := "1234";
variable int : integer;
...
int := integer'value(str);
В зависимости от потребностей это может быть более желательным, чем процедура read()
, поскольку она не приводит к деструктивному изменению исходной строки. Однако он работает только в том случае, если строка является допустимым целочисленным литералом без окружающих символов, кроме пробела.
variable ln : line;
variable int : integer;
...
ln := new string'(" 456 "); -- Whitespace will be ignored
int := integer'value(ln.all); -- Doesn't consume contents of ln
ln := new string'("789_000 more text");
int := integer'value(ln.all); -- This will fail unlike read()