/ / Pascal substr equivalente - sottostringa, pascal, substr

Equivalente substrato Pascal - sottostringa, pascal, substr

Stavo cercando un equivalente Pascal per (per esempio) la funzione substr di php, che funziona così:

$new_string = substr("abcdef", 1, 3);  // returns "bcd"

L'ho già trovato, ma mi prendo sempre troppo tempo per farlo, quindi sto postando la risposta per gli altri come me che sono in grado di trovarlo facilmente.

risposte:

12 per risposta № 1

Puoi usare la funzione copia. La sintassi va:

copy(string, start, length);

Le stringhe in Pascal sembrano essere indicizzate a partire dall'1, quindi le seguenti:

s1 := "abcdef";
s2 := copy (s1,2,3);

risulterà in s2 == "bcd".

Spero che questo aiuti qualcuno.


0 per risposta № 2

FreePascal ha anche una funzione di copia:

T:="1234567";
S:=Copy (T,1,2);   { S:="12"   }
S:=Copy (T,4,2);   { S:="45"   }
S:=Copy (T,4,8);   { S:="4567" }

Ti consiglio di vedere Lazarus IDE.


-1 per risposta № 3
    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;