delphi 由絕對路徑獲得相對路徑演算法

2021-04-14 01:13:02 字數 2831 閱讀 5135

// 取兩個目錄的相對路徑,注意串尾不能是

'/'字元!

functiongetrelativepath(source, dest:string):string;

//交換字串

functiongetpathcomp(s1, s2:string): integer;

procedureswapstr(vars1, s2:string);

vartempstr:string;

begin

tempstr := s1;

s1 := s2;

s2 := tempstr;

end;

//比較兩路徑字串頭部相同串的函式

begin

iflength(s1) > length(s2) then swapstr(s1, s2);

result := pos(s1, s2);

whileresult = 0do

begin

ifs1 =

''then exit;

s1 := extractfiledir(s1);

result := pos(s1, s2);

end;

ifresult <> 0 then result := length(s1);

ifresult = 3 then result := 2;

//修正因

extractfiledir()

處理'c:/'

時產生的錯誤.

end;

functiongetroot(s: shortstring):string;

//取dest的相對根路徑的函式

vari: integer;

begin

result := '';

fori := 1tolength(s)do

ifs[i] =

'/'then result := result +

'../';

ifresult =

''then result :=

'./';

//如果不想處理成"./"的路徑格式,可去掉本行

end;

functionrightsub(s:string; len: integer):string;

begin

delete(s, 1, length(s) - len);

result := s;

end;

var

relativroot, relativsub:string;

headnum: integer;

//取右子串

begin

source := uppercase(source); dest := uppercase(dest);

//比較兩路徑字串頭部相同串

headnum := getpathcomp(source, dest);

//取dest的相對根路徑

relativroot := getroot(rightsub(dest, length(dest) - headnum));

//取source的相對子路徑

relativsub := rightsub(source, length(source) - headnum - 1);

//返回

result := relativroot + relativsub;

end;

//by

閆磊email:[email protected],[email protected] 2001.11.23

呼叫proceduretform1.button1click(sender: tobject);

begin

showmessage(getrelativepath(

'c:/test/aim'

, 'c:/test'

));

end;

delphi,由相對路徑獲得絕對路徑演算法

子串出現的次數 function var i integer p integer begin p pos sub,st i 0 whilep 0do begin inc i delete st,1,p length sub 1 p pos sub,st end result i end 按字串分解 ...

由絕對路徑求相對路徑

最近公司的乙個任務需要修改檔案原來的絕對路徑為相對路徑,於是寫了乙個方法 由絕對路徑獲得相對路徑 path2相對於path1的相對路徑 param path1 path1絕對路徑 param path2 path2絕對路徑 return 相對路徑 throws exception author pu...

相對路徑絕對路徑

前兩天突然發現自己一直以來對相對路徑絕對路徑的理解都是錯的,於是趕緊查了相關資料。1.絕對路徑 絕對路徑是指檔案在硬碟上真正存在的路徑。例如 bg.jpg 這個是存放在硬碟的 e book 網頁布局 第2章 目錄下,那麼 bg.jpg 這個的絕對路徑就是 e book 網頁布局 第2章 bg.jpg...