Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Получение имени файла из пути без или с его расширением

Delphi , Файловая система , Файлы

Получение имени файла из пути без или с его расширением

Автор: VID
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение имени файла из пути без или с его расширением.

Зависимости: нет
Автор:       VID, snap@iwt.ru, ICQ:132234868, Махачкала
Copyright:   VID
Дата:        18 апреля 2002 г.
***************************************************** }

function ExtractFileNameEx(FileName: string; ShowExtension: Boolean): string;
//Функция возвращает имя файла, без или с его расширением.

//ВХОДНЫЕ ПАРАМЕТРЫ
//FileName - имя файла, которое надо обработать
//ShowExtension - если TRUE, то функция возвратит короткое имя файла
// (без полного пути доступа к нему), с расширением этого файла, иначе,
возвратит
  // короткое имя файла, без расширения этого файла.
var
  I: Integer;
  S, S1: string;
begin
  //Определяем длину полного имени файла
  I := Length(FileName);
  //Если длина FileName <> 0, то
  if I <> 0 then
  begin
    //С конца имени параметра FileName ищем символ "\"
    while (FileName[i] <> '\') and (i > 0) do
      i := i - 1;
    // Копируем в переменную S параметр FileName начиная после последнего
    // "\", таким образом переменная S содержит имя файла с расширением, но без
    // полного пути доступа к нему
    S := Copy(FileName, i + 1, Length(FileName) - i);
    i := Length(S);
    //Если полученная S = '' то фукция возвращает ''
    if i = 0 then
    begin
      Result := '';
      Exit;
    end;
    //Иначе, получаем имя файла без расширения
    while (S[i] <> '.') and (i > 0) do
      i := i - 1;
    //... и сохраням это имя файла в переменную s1
    S1 := Copy(S, 1, i - 1);
    //если s1='' то , возвращаем s1=s
    if s1 = '' then
      s1 := s;
    //Если было передано указание функции возвращать имя файла с его
    // расширением, то Result = s,
    //если без расширения, то Result = s1
    if ShowExtension = TRUE then
      Result := s
    else
      Result := s1;
  end
    //Иначе функция возвращает ''
  else
    Result := '';
end;

Программный код на Delphi!

Вот разбор функции ExtractFileNameEx:

Сигнатура функции: function ExtractFileNameEx(FileName: string; ShowExtension: Boolean): string;

Цель: Эта функция извлекает имя файла из заданного пути, либо с его расширением, либо без.

Параметры входа: 1. FileName: Имя файла для обработки. 2. ShowExtension: Булево значение, указывающее, возвращать ли имя файла с или без его расширения.

Тело функции: 1. Она вычисляет длину входного FileName. 2. Если длина не равна нулю, она ищет последний обратный слеш (\) от конца строки и копирует оставшуюся часть (включая имя файла и расширение) в переменную S. Это эффективно удаляет путь к директории. 3. Если S является пустой строкой, функция возвращает пустую строку (''). 4. В противном случае она извлекает имя файла без его расширения, найдя последний точку (.) от конца строки и копируя все, что находится до этого пункта, в переменную S1. 5. Если S1 также является пустой строкой, функция возвращает S (которое должно быть оригинальным именем файла с расширением). 6. Наконец, функция возвращает либо S (с расширением), либо S1 (без расширения), в зависимости от значения ShowExtension.

Возвращаемые значения: Функция возвращает строку, содержащую извлеченное имя файла, либо с его расширением, либо без.

Код довольно прост и легко понять. Однако, если вы ищете альтернативные решения, есть несколько вариантов: 1. Используйте функцию ExtractFileName из модуля SysUtils, которая выполняет схожую функциональность: ExtractFileName(FileName). 2. Используйте регулярные выражения (например, с помощью TRegex) для извлечения имени файла и расширения. 3. Реализуйте свой собственный парсинг с использованием функций строкового манипулирования, таких как Pos, Copy и Delete.

Обратите внимание, что эти альтернативные решения могут иметь свои преимущества и недостатки в зависимости от вашей конкретной задачи и ограничений.

Получение имени файла из пути без или с его расширением: функция ExtractFileNameEx позволяет получить имя файла, не учитывая полный путь к нему, либо включая расширение.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Файлы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 19:57:35/0.0037498474121094/0