lokalizacja względna

0

potrzebuję zrobić taki greps, żeby program zwrócił mi wartość lokalizacji względnej z pliku do pliku. Załóżmy, że mamy :

lokalizację1 : C:\aaa\bbbbb\cc\ddd\e.txt
lokalizację2 : C:\aaa\bbbbb\t.txt

zatem lokalizacja względna z 1 do 2 = ..\..\t.txt
a z 2 do 1 = ddd\e.txt

Potrzebuję uniwersalną funkcję, która działa w ten sposób. Szczególnie zwracam się o pomoc do twórców jakichś edytorów HTML, bo tam musieli przez coś takiego przejść.

;( ;( ;( ;( ;( ;(

0

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&lt=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&lt&gt0 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++ :) ]------

0

Ja napisałem taką procedurkę, ale nie chce jej publikować, bo bym się ośmieszył :-)
Ewentualnie mogę przedstawić metodę na podstawie której stworzyłem tą procedurkę.

Pozdrawiam {hello}

0

Sheitar napisał:
To bedzie wygladalo mniej wiecej tak:
&gt
&gtInaczej 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.
&gt
&gtMoze troche lipny ten kodzik ale zawsze chyba to cos od czego mozna zaczac. Grunt to podstawa :)


A NO WŁAŚNIE. DO TEGO TEŻ JUŻ DOSZEDŁEM I W TYM MIEJSCU STOJĘ. DLATEGO SZUKAM CZEGOŚ UNIWERSALNEGO.

PZDR;

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0