У меня есть строка Alpha 2
, из которой мне нужно извлечь целую часть, то есть 2
.Получить целую часть строки в Pascal
Это быстрый и грязный проект, и я не заинтересован в изучении Паскаля. Все, что мне нужно, это быстрый ответ!
У меня есть строка Alpha 2
, из которой мне нужно извлечь целую часть, то есть 2
.Получить целую часть строки в Pascal
Это быстрый и грязный проект, и я не заинтересован в изучении Паскаля. Все, что мне нужно, это быстрый ответ!
var
sub: string;
i: Integer;
begin
sub := Copy('Alpha 2', 7, 1);
i := StrToInt(sub);
-
const
str = 'Alpha 2';
var
i: Integer;
begin
i := StrToInt(str[7]);
-
var
str: string;
sub: string;
spc: Integer;
i: Integer;
begin
str := 'Alpha 257';
spc := Pos(' ', str);
sub := Copy(str, spc + 1, Length(str) - spc);
i := StrToInt(sub);
Там также StrToIntDef, если вы не хотите исключением быть поднят, когда аргумент не является целым числом.
Для метода, который ищет первое число в строке и возвращает его как целое число, используйте следующий код. Он либо вернет положительное целочисленное значение, либо -1, если в строке не было найдено номера.
function IntegerInString(s: string) : integer;
var i, state, startPos, endPos : integer;
begin
state := 0;
startPos := -1;
endPos := Length(s);
for i := 1 to Length(s) do
begin
if ((s[i] >= '0') and (s[i] <= '9') then
begin
if state = 0 then startPos := i;
state := 1;
end else
if state = 1 then
begin
endPos := i;
break;
end;
end;
end;
if startPos > -1 then
result := IntToStr(Copy(s, startPos, endPos))
else
result := -1;
end;
Я собираюсь с вашим третьим предложением. – Icode4food
Если вы используете Free Pascal, вы можете использовать strutils.rpos (pos из заднего конца строки). Он также сохранится, если текст перед номером содержит пробел. –