1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
unit FonctionsChaine;
interface
function droite(substr: string; s: string): string;
function DroiteDroite(substr: string; s: string): string;
function gauche(substr: string; s: string): string;
function NbSousChaine(substr: string; s: string): integer;
function NDroite(substr: string; s: string;n:integer): string;
function GaucheNDroite(substr: string; s: string;n:integer): string;
implementation
function droite(substr: string; s: string): string;
begin
if pos(substr,s)=0 then result:='' else
result:=copy(s, pos(substr, s)+length(substr), length(s)-pos(substr, s)+length(substr));
end;
function droiteDroite(substr: string; s: string): string;
{============================================================================}
{ fonction qui renvoie la sous chaine de caractère situè à droite de la sous }
{ chaine substr située la plus à droite }
{ ex: si substr = '\' et S= 'truc\tr\essai.exe droiteDroite renvoie essai.exe}
{============================================================================}
begin
Repeat
S:=droite(substr,s);
until pos(substr,s)=0;
result:=S;
end;
function gauche(substr: string; s: string): string;
{============================================================================}
{ fonction qui renvoie la sous chaine de caractère situè à gauche de la sous }
{ chaine substr }
{ ex: si substr = '\' et S= 'truc\tr\essai.exe' gauche renvoie truc }
{============================================================================}
begin
result:=copy(s, 1, pos(substr, s)-1);
end;
function NbSousChaine(substr: string; s: string): integer;
{==================================================================================}
{ renvoie le nombre de fois que la sous chaine substr est présente dans la chaine S}
{==================================================================================}
begin
result:=0;
while pos(substr,s)<>0 do
begin
S:=droite(substr,s);
inc(result);
end;
end;
function NDroite(substr: string; s: string;n:integer): string;
{==============================================================================}
{ renvoie ce qui est à droite de la n ieme sous chaine substr de la chaine S }
{==============================================================================}
var i:integer;
begin
for i:=1 to n do
begin
S:=droite(substr,s);
end;
result:=S;
end;
function GaucheNDroite(substr: string; s: string;n:integer): string;
{==============================================================================}
{ renvoie ce qui est à gauche de la droite de la n ieme sous chaine substr }
{ de la chaine S }
{ ex : GaucheNDroite('/','c:machin\truc\essai.exe',1) renvoie 'truc' }
{ Permet d'extraire un à un les éléments d'une chaine séparés par un séparateur}
{==============================================================================}
var i:integer;
begin
S:=S+substr;
for i:=1 to n do
begin
S:=copy(s, pos(substr, s)+length(substr), length(s)-pos(substr, s)+length(substr));
end;
result:=copy(s, 1, pos(substr, s)-1);
end;
end. |
Partager