Einzelnen Beitrag anzeigen

Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#9

Re: %20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 16:21
Ich hatte da mal eine Funktion geschrieben. Allerdings war das ne Arbeit von 5 Minuten oder so, weil ich mal schnell eben eine brauchte. Es sind deshalb auch keine Kommentare vorhanden.
Delphi-Quellcode:
function TranslateURL(URL: string; Encode: bool): string;
var
  i: integer;
  tmp: string;
begin
  result := 'ERROR';
  i := 1;
  tmp := '';
  URL := LowerCase(URL);

  if not Encode then
    while i <= Length(URL) do begin
      if (URL[i] = '%') and (URL[i+1] in ['0'..'9', 'a'..'f'])
      and (URL[i+2] in ['0'..'9', 'a'..'f']) then begin
        tmp := tmp + chr(StrToInt('$' + Copy(URL, i+1, 2)));
        inc(i, 2);
      end else
        tmp := tmp + URL[i];
      inc(i);
    end;

  if Encode then
    while i <= Length(URL) do begin
      if URL[i] in ['0'..'9', 'a'..'z', '.', '-', '_'] then
        tmp := tmp + URL[i]
      else
        tmp := tmp + '%' + IntToHex(ord(URL[i]), 2);
      inc(i);
    end;

  result := tmp;
end;
Falls irgendwas näher erklärt werden soll, einfach nachfragen. Aufgerufen wird das Ganze so:
Delphi-Quellcode:
Encode:
URL := TranslateURL(URL, true);

Decode:
URL := TranslateURL(URL, false);
MfG Brainstalker

[Edit] , hinzugefügt
[Edit2] jetzt sollte das mit Encode stimmen.
Michael N.
Brainstalker
  Mit Zitat antworten Zitat