...crack a URL into its component parts?

Author: Thomas Stutz

Category: Internet / LAN

{
  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;

 

printed from
www.swissdelphicenter.ch
developers knowledge base