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

Извлечь имя файла из строки URL

Delphi , Интернет и Сети , URL

Извлечь имя файла из строки URL

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function ExtractUrlFileName(const AUrl: string): string;
  var
    i: Integer;
  begin
    i := LastDelimiter('/', AUrl);
   Result := Copy(AUrl, i + 1, Length(AUrl) - (i));
  end;

  procedure TForm1.Button1Click(Sender: TObject);
  var
    s: string;
  begin
    s := ExtractUrlFileName('http://www.delphimania.de/index.php');
    ShowMessage(s);  //index.php  
end

Here is the translation of the text into Russian:

Код, который вы предоставили, - это функция Delphi, которая извлекает имя файла из заданного URL. Функция ExtractUrlFileName принимает строковый параметр AUrl, который является URL, из которого нужно извлечь имя файла.

Вот шаг за шагом, как она работает:

  1. Она использует функцию LastDelimiter для поиска последнего вхождения символа / в URL.
  2. Затем она использует функцию Copy для извлечения подстроки, начиная с позиции после последнего вхождения символа / и до конца строки.

Результатом является имя файла, которое хранится в переменной Result, которая возвращает функция при вызове.

В процедуре Button1Click вы вызываете эту функцию с примерным URL ('http://www.delphimania.de/index.php') и отображаете результат с помощью функции ShowMessage. Вывод будет 'index.php', которое является извлеченным именем файла из URL.

Вот несколько предложений по улучшению:

  • Вместо использования жесткого кода / символ, вы могли бы сделать функцию более гибкой, позволяя пользователю указать разделитель (например, \, /, и т.д.). Вы можете это сделать, добавив дополнительный параметр к функции.
  • Функция LastDelimiter не так эффективна, как использование функции PosEx с константой cBackslash или cSlash. Это позволит вам найти последнее вхождение разделителя более быстро и точно.

Вот обновленная версия кода, которая включает эти предложения:

function ExtractUrlFileName(const AUrl, ADelimiter: string): string;
begin
  Result := Copy(AUrl, PosEx(ADelimiter, AUrl) + Length(ADelimiter), Length(AUrl) - (PosEx(ADelimiter, AUrl) + Length(ADelimiter)));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
  s := ExtractUrlFileName('http://www.delphimania.de/index.php', '/'); // index.php
  ShowMessage(s);
end;

В обновленном коде функция ExtractUrlFileName принимает дополнительный параметр ADelimiter, который указывает разделитель для извлечения имени файла. Функция использует функцию PosEx для поиска последнего вхождения разделителя и затем извлекает подстроку, как раньше.

Вы можете вызывать эту функцию с разными разделителями (например, \ для Windows путей) передавая другой значений параметра ADelimiter.

В статье описывается функция на языке Delphi, которая извлекает имя файла из строки URL, используя последний символ '/' в строке как точку отсчета.


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

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




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


:: Главная :: URL ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:22:15/0.0055780410766602/1