Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
ВнизКак сократить полный путь файла? Найти похожие ветки
← →
vagra © (2006-04-17 19:17) [0]Здравствуйте!
Есть ли какая-нибудь функция, которая делает из полного пути файла
"c:\program files\ochen-dlinnyi put\myfilename.ext"
такой:
"c:\progr...\myfilename.ext"
Спасибо.
← →
Rial © (2006-04-17 19:53) [1]//Компактная запись имени фйла, где указываются макс. длина новой строки и
//макс. количество папок перед конечным файломfunction CompacName(Const Name:String;Const MaxLen,NumOfSlh:Integer):String;
begin
Result:=CompacNameExp(Name,MaxLen,NumOfSlh,NumOfSlh);
end;
//Та же фунцкия, с выравниванием с обеих сторонfunction CompacNameExp(Name:String;Const MaxLen,NumOfSlhLeft,NumOfSlhRight:Integer):String;
Var I,J,L,BP,US:Integer;
begin
L:=Length(Name);
Result:=Name;
If (L<=MaxLen)then Exit;
J:=1;
I:=0;
While (I<NumOfSlhLeft)and(J<=L) do begin
If (Name[J]="\")then Inc(I);
Inc(J);
end;
BP:=J;
J:=L;
I:=0;
While (J>BP)and(I<NumOfSlhRight)do begin
If (Name[J]="\")then Inc(I);
Dec(J);
end;
I:=J;
US:=BP+L-I;
While (J>BP)and(US<MaxLen)do begin
If (Name[J]="\")then I:=J-1;
Dec(J);
Inc(US);
end;
Name:=Copy(Name,1,BP-1)+"..."+Copy(Name,I+1,L-I);
If (Length(Name)<L)then Result:=Name;
end;
//Относительное имя файла, относительно текущей директорииfunction MinimizeFileName(Const FileName,DirName:String):String;
Var I,P:Integer;
L1,L2:Integer;
begin
Result:=FileName;
If (FileName=DirName)then begin
Result:="";
Exit;
end;
If (ExtractFileDir(FileName)=DirName)then begin
Result:=ExtractFileName(FileName);
Exit;
end;
L1:=Length(FileName);
L2:=Length(DirName);
P:=1;
While (P<=L1)and(P<=L2)and(FileName[P]=DirName[P])do
Inc(P);
If (P>=L1)or(P>=L2)then begin
If (P>L1)then Result:=FileName
else Result:=Copy(FileName,P+1,L1-P);
Exit;
end;
While (P>=0)and(FileName[P]<>"\")do Dec(P);
If (P<3)then Exit;
Result:="..\";
I:=P+1;
While (I<=L2)do begin
If (DirName[I]="\")then Result:=Result+"..\";
Inc(I);
end;
Result:=Result+Copy(FileName,P+1,L1-P);
end;
P.S. Функции мои. Но пользуюсь давно, глючить не должны.
← →
TUser © (2006-04-17 19:58) [2]The GetShortPathName function obtains the short path form of a specified input path.
Будет с тильдами.
← →
Джо © (2006-04-17 20:16) [3]> //Относительное имя файла, относительно текущей директории
Есть ExtractRelativeFileName в SysUtils.pas
← →
Гаврила © (2006-04-17 22:08) [4]А еще есть MinimizeName
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c