function dec2bin(x:integer):string; var s:string; begin s:=''; repeat s:=chr($30 + x and 1) + s; x:=x shr 1; until x=0; result:=s; end; var binX,binY:string; i,posSRC,posDATE,posTYPE,posFirstAND:integer; begin posFirstAND:=pos('&',GetUrlBase)-1; if posFirstAND<=0 then begin posFirstAND:=length(GetUrlBase); end; posSRC:=pos('&src=',GetUrlBase); posDATE:=pos('&date=',GetUrlBase); posTYPE:=pos('&type=',GetUrlBase); ResultURL:=copy(GetUrlBase,1,posFirstAND); if posSRC>0 then begin i:=posSRC+5; while (GetUrlBase[i]<>'&') do begin inc(i); if (i>length(GetUrlBase)) then break; end; ResultURL:=ResultURL+copy(GetUrlBase,posSRC+5,i-(posSRC+5)); end; ResultURL:=ResultURL+'/'+inttostr(GetZ-1)+'/'; if posDATE>0 then begin i:=posDATE+6; while (GetUrlBase[i]<>'&') do begin inc(i); if (i>length(GetUrlBase)) then break; end; if (i-(posDATE+6))>0 then begin ResultURL:=ResultURL+copy(GetUrlBase,posDATE+6,i-(posDATE+6))+'/'; end; end; binX:='0'+dec2bin(GetX); binY:='0'+dec2bin(GetY); binX:=copy(binX,length(binX)-(GetZ-1)+1,GetZ-1); binY:=copy(binY,length(binY)-(GetZ-1)+1,GetZ-1); for i:=7 to GetZ-1 do begin ResultURL:=ResultURL+copy(binY,1,i-6)+'-'+copy(binX,1,i-6)+'/'; end; ResultURL:=ResultURL+binY+'-'+binX; if posTYPE>0 then begin i:=posTYPE+6; while (GetUrlBase[i]<>'&') do begin inc(i); if (i>length(GetUrlBase)) then break; end; if (i-(posTYPE+6))>0 then begin ResultURL:=ResultURL+'.'+copy(GetUrlBase,posTYPE+6,i-(posTYPE+6)); end; end else begin ResultURL:=ResultURL+'.jpg'; end; end.