// Si el caracter c es mayuscula, es cierto
function esmayuscula(c : char) : boolean;
begin
if (c>#64) and (c<#91)
then result:=true
else result:=false;
end;
// Si el caracter c es minuscula, es cierto
function esminuscula(c : char) : boolean;
begin
if (c>#96) and (c<#123)
then result:=true
else result:=false;
end;
// Si el caracter c es un numero, es cierto
function EsUnNumero(c : char) : boolean;
begin
if (c>#47) and (c<#58)
then result:=true
else result:=false;
end;
// Convierte a mayusculas una cadena
// ucase('Hola')='HOLA'
function ucase(s : string) : string;
var i : integer;
begin
for i:=1 to length(s) do
if esminuscula(s[i]) then s[i]:=chr(ord(s[i])-32);
result:=s;
end;
// Convierte a minusculas una cadena
// ucase('Hola')='hola'
function dcase(s : string) : string;
var i : integer;
begin
for i:=1 to length(s) do
if esmayuscula(s[i]) then s[i]:=chr(ord(s[i])+32);
result:=s;
end;
// EliminaEspaciosDelPrincipio(' digo')='digo'
function EliminaEspaciosDelPrincipio(cad : string) : string;
begin
while cad[1]=#32 do cad:=copy(cad,2,length(cad));
result:=cad;
end;
// EliminaEspaciosDelFinal('digo ')='digo'
function EliminaEspaciosDelFinal(cad : string) : string;
begin
while cad[length(cad)]=#32 do cad:=copy(cad,1,length(cad)-1);
result:=cad;
end;
// EliminaEspaciosDeLosExtremos(' digo ')='digo'
function EliminaEspaciosDeLosExtremos(cad : string) : string;
begin
result:=EliminaEspaciosDelPrincipio(EliminaEspaciosDelFinal(cad));
end;
// EliminaSubcadena('Hola amigo','HOLA',false)=' amigo'
// EliminaSubcadena('Hola amigo','HOLA',true)='Hola amigo'
function EliminarSubcadena(sub,cad : string; casesensitive : boolean) : string;
var
aux : string;
begin
if casesensitive then
begin
while pos(sub,cad)>0 do delete(cad,pos(sub,cad),length(sub));
end else
begin
aux:=ucase(cad);
sub:=ucase(sub);
while pos(sub,aux)>0 do
begin
delete(cad,pos(sub,aux),length(sub));
delete(aux,pos(sub,aux),length(sub));
end;
end;
result:=cad;
end;
// IntercambiaCadenas('Hola amigo','Hola','Adios')='Adios amigo';
function IntercambiaCadenas(sp,s1,s2 : string) : string;
var
i,j : integer;
aux : string;
begin
if pos(s1,sp)=0 then IntercambiaCadenas:=sp
else
begin
aux:='';
i:=pos(s1,sp);
for j:=1 to i-1 do aux:=aux+sp[j];
for j:=1 to length(s2) do aux:=aux+s2[j];
for j:=i+length(s1) to length(sp) do aux:=aux+sp[j];
IntercambiaCadenas:=IntercambiaCadenas(aux,s1,s2);
// Esa recurrente y relamida recursividad...
end;
end;