Сокращенное имя каталога

Советы » Каталоги » Сокращенное имя каталога

Есть имя каталога:

c:windowsmedia empabcsoundchime.wav

Мне необходима сокращенная запись, такая как

c:windows..soundchime.wav

а не полный путь к файлу.

Есть ли простой способ для этого?

Я разработал процедуру, которая делает нечто похожее. Она сокращает имя каталога, когда он и текущий путь имеют в корне тот же диск и/или часть пути, совпадающие вначале. Полученный результат (сокращенная запись) действительно легче для восприятия. Я производил кодирование в шестнадцатиричном редакторе в Borland Pascal и некоторое время не использовал. Я не думаю, что данный код может быть несовместим с последними версиями Delphi.

function

shortenfilename(s: string

): string

; var

drive, curdrive: string

[2]; dir, curdir: string

[80]; name: string

[20]; ext: string

[5]; i: byte; begin

for

i := 1 to

length(s) do

s[i] := upcase(s[i]); s := fexpand(s); fsplit(s, dir, name, ext); drive := copy(dir, 1, 2); dir := copy(dir, 4, length(dir) - 3); getdir(0, curdir); curdrive := copy(curdir, 1, 2); curdir := copy(curdir, 4, length(curdir) - 3) + ''; if

drive = curdrive then

begin

if

copy(dir, 1, length(curdir)) = curdir then

begin

i := length(curdir); if

length(dir) <> i then

dir := dir + ''; shortenfilename := copy(dir, i + 1, length(dir) - i - 1) + name + ext; end

else

shortenfilename := copy(s, 3, length(s) - 2); end

else

shortenfilename := s; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com