uso: le pamos la url codificada y nos retorna la original, ojo para usar esta funcion se necesita conexion a internet.
La funcion puede ser retocada para un funcionamiento mas optimo.
uses
SysUtils,
IdHTTP,
IdCoderMIME;
function DecodeAdFly(const url:string):string;
var
http:TIdHTTP;
content,data,urlFinal,part1,part2:string;
pos1,pos2,i,npos:integer;
const
STRINGKEY='ysmm = ';
begin
urlFinal:='';
i:=1;
http:=TIdHTTP.Create(nil);
try
content:=http.Get(url);//obtenemos el codigo html
pos1:=pos(STRINGKEY,content);//encontramos el ysmm =
pos2:=1;
npos:=pos1;
while(content[npos]<>';')do//recorremos el content hasta encontrar el ';'
begin
inc(npos);
inc(pos2);//el pos2 nos dira cuantos caracteres tiene el ysmm
end;
//data alamcenrar la cadena de ysmm
data:=copy(content,pos1+length(STRINGKEY)+1,pos2-length(STRINGKEY)-3);
while(i<=length(data)) do //filtramos la cadena llamada data
begin
part1:=part1+data[i];
part2:=data[i+1]+part2;
i:=i+2;
end;
urlFinal:=TIdDecoderMIME.DecodeString(part1+part2);//los desciframos con base64
Result:=copy(urlFinal,3,length(urlFinal)-2);//retornamos la url original
finally
http.Free; //liberamos el objeto creado arriba
end;
end;
var
url:string;
begin
url:=DecodeAdFly('http://adf.ly/dLgCS');
writeln(url);
readln;
end.