Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Файловая система \ Каталоги \ Сокращенное имя каталога

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

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

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;

Название: Сокращенное имя каталога
Дата публикации: 2004-06-13 (2506 Прочтено)

 
 

 

Page generation 0.034 seconds