To bedzie wygladalo mniej wiecej tak:
function Lokalizacja(Plik1, Plik2: String): String;
var
Dir: String;
n, Ile: Integer;
begin
Dir:=; Ile:=0; Result:=
;
for n:=1 to Length(Plik1) do
begin
if n<=Length(Plik2) then if Plik1[n]=Plik2[n] then Dir:=Dir+Plik1[n];
end;
for n:=Length(Dir)+1 to Length(Plik1) do
begin
if Plik1[n]='\' then Inc(Ile);
end;
for n:=0 to Ile-1 do
begin
Result:=Result+'..\';
end;
if Ile<>0 then Result:=Result+ExtractFileName(Plik2) else
begin
Delete(Plik2,1,Length(Dir));
Result:=Plik2;
end;
end;
zwraca lokalizacje Pliku2 wzgledem Pliku1 - chyba, albo na odwrot.
poza tym nie dziala dobrze dla przypadku gdy
Plik1 - [katalog]\folder\folderinny\plik.cos
Plik2 - [katalog]\jakisfolder\innyplik.cos
Inaczej mowiac nie dziala poprawnie gdy w pewnym momencie katalogi rozgaleziaja sie. Dziala dobrze wtedy, gdy oba pliki maja pewien wspoplny katalog nastepnie jeden sie konczy, a drugi moze isc glebiej - mniej wiecej tak.
Moze troche lipny ten kodzik ale zawsze chyba to cos od czego mozna zaczac. Grunt to podstawa :)
-------[ Delphi 6 Rulez 4 Ever!, przynajmniej do czasu gdy naucze sie C++ :) ]------