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

Взять часть URL, которая следует после названия сайта

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

Взять часть URL, которая следует после названия сайта

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

{ 
  InternetCrackUrl() takes a URL as a parameter and breaks it down into components, 
  which are then accessible via the TURLComponents structure. 

  InternetCrackUrl() zerlegt eine URL in seine Komponenten, welche dann ьber die 
  TURLComponents Struktur zugдnglich sind. 
}

 uses
   WinInet;

 procedure TForm1.Button1Click(Sender: TObject);
 var
   aURLC: TURLComponents;
 const
   TEST_URL = 'http://www.swissdelphicenter.ch/de/tipsindex.php';
 begin
   FillChar(aURLC, SizeOf(TURLComponents), 0);
   with aURLC do
   begin
     lpszScheme := nil;
     dwSchemeLength := INTERNET_MAX_SCHEME_LENGTH;
     lpszHostName := nil;
     dwHostNameLength := INTERNET_MAX_HOST_NAME_LENGTH;
     lpszUserName := nil;
     dwUserNameLength := INTERNET_MAX_USER_NAME_LENGTH;
     lpszPassword := nil;
     dwPasswordLength := INTERNET_MAX_PASSWORD_LENGTH;
     lpszUrlPath := nil;
     dwUrlPathLength := INTERNET_MAX_PATH_LENGTH;
     lpszExtraInfo := nil;
     dwExtraInfoLength := INTERNET_MAX_PATH_LENGTH;
     dwStructSize := SizeOf(aURLC);
   end;
   if InternetCrackUrl(PChar(TEST_URL), Length(TEST_URL), 0, aURLC) then
   begin
     ShowMessage(aURLC.lpszUrlPath);
   end;
 end;

Программный код на Delphi, демонстрирующий использование функции InternetCrackUrl из библиотеки WinInet для разбора URL-адреса.

Основная цель этого кода - извлечь часть пути URL, которая следует за доменным именем. Часть пути включает в себя все каталоги и файлы после доменного имени в URL-адресе.

Вот шаг за шагом, что делает код:

  1. Он объявляет переменную TURLComponents aURLC, которая будет использоваться для хранения разобраных компонентов URL.
  2. Он определяет константу TEST_URL с URL-адресом, который нужно разобрать: 'http://www.swissdelphicenter.ch/de/tipsindex.php'.
  3. В обработчике события Button1Click, он инициализирует aURLC, заполняя поля его полей значениями по умолчанию с помощью функции FillChar.
  4. Затем он вызывает функцию InternetCrackUrl для разбора URL-адреса и хранения результата в aURLC. Функция принимает четыре параметра:
    • PChar(TEST_URL): указатель на строку URL.
    • Length(TEST_URL): длина строки URL.
    • 0: необязательный параметр для дополнительных флагов (в этом случае, установлен в 0).
    • aURLC: структура, которая будет хранить разобраные компоненты URL.
  5. Если разбор успешен, он отображает сообщение с извлеченной частью пути URL с помощью функции ShowMessage и доступом к полю lpszUrlPath в aURLC.

Вывод этого кода будет: /de/tipsindex.php, что является частью пути оригинального URL.

Альтернативное решение:

Вместо использования функции InternetCrackUrl, можно использовать регулярное выражение или специализированную библиотеку для разбора URL, чтобы извлечь часть пути URL. Это может быть более гибким и легче поддерживать в долгосрочной перспективе. Например, с помощью регулярного выражения, вы можете использовать следующий код:

uses
  RegEx;

procedure TForm1.Button1Click(Sender: TObject);
var
  URL: string;
begin
  URL := 'http://www.swissdelphicenter.ch/de/tipsindex.php';
  if Match(URL, '^.*?/(.*)$', Matches) then
    ShowMessage(Matches[0]);
end;

В этом коде используется функция Match из модуля RegEx, чтобы найти паттерн в строке URL. Паттерн ^.*?/(.*)$ matches любые символы (включая пустой) до найденного forward slash (/) и группировки 1, которая содержит часть пути URL. Если найден match, он отображает сообщение с извлеченной частью пути URL с помощью функции ShowMessage и доступом к первому элементу массива Matches.

В статье рассматривается функция InternetCrackUrl из библиотеки WinInet, которая разбивает URL на компоненты и доступные через структуру TURLComponents.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 11:06:32/0.0054309368133545/1