4

如何在 Delphi 中做到这一点?例如..

网址 = https://mail.google.com/mail/u/0/?tab=wm#inbox

修剪的 URL = https://mail.google.com/

谢谢

4

3 回答 3

6

使用 Indy 的示例代码TIdURI可能是:

uses
  IdURI;

function GetProtoAndHost(const URI: string): string;
var
  IdURI: TIdURI;
begin
  IdURI := TIdURI.Create(URI);
  try
    Result := IdURI.Protocol + '://' + IdURI.Host + '/';
  finally
    IdURI.Free;
  end;
end;
于 2012-11-06T20:55:17.600 回答
3
Function GetRoot(const Path:String):String;
var
 i:Integer;
begin
  i := Pos('//',Path);
  if i>0 then
      i := PosEx('/',Path,i+2)
  else i := Pos('/',Path);
  if i=0 then i := Length(Path);

  Result := Copy(Path,1,i);
end;
于 2012-11-06T20:51:24.877 回答
2

看看TIdURIIndy 的类(在 `IdURI' 单元中)。它是一个 URI/URL 解析器。你给它一个 URL,它把它解析成各种组件。玩弄它,看看它是如何工作的。一旦解析了 URL,就可以通过查看 Host 和 Protocol 属性来回答您的特定问题。

于 2012-11-06T20:47:27.223 回答