Эквивалент Pascal substr
Я искал эквивалент Паскаля для (например) функции substr php, которая работает следующим образом:
$new_string = substr('abcdef', 1, 3); // returns 'bcd'
Я уже нашел его, но я всегда занимаю слишком много времени, чтобы сделать это, поэтому я публикую ответ для других, как я, чтобы иметь возможность легко найти его.
3 ответов
Вы можете использовать функцию скопировать. Синтаксис идет:
copy(string, start, length);
строки в Pascal, похоже, индексируются, начиная с 1, поэтому следующее:
s1 := 'abcdef';
s2 := copy(s1, 2, 3);
в результате s2 = = 'bcd'.
надеюсь, это кому-то поможет.
Freepascal также имеет функцию копирования:
T:='1234567';
S:=Copy (T,1,2); { S:='12' }
S:=Copy (T,4,2); { S:='45' }
S:=Copy (T,4,8); { S:='4567' }
Я рекомендую вам посмотреть Лазарь IDE.
function substring(s: string; a, b: integer): string;
var len: integer;
procedure swap(var a, b: integer);
var temp: integer;
begin
temp:= a;
a:= b;
b:= temp;
end;
begin
if (a > b) then
swap(a, b);
len:= length(s);
if ((len = 0) or ((a < 1) and (b < 1)) or
((a > len) and (b > len))) then
begin
substring:= '';
end
else
begin
if (a < 1) then
a:= 1;
if (b > len) then
b:= len;
substring:= copy(s, a, b);
end;
end;