![]() |
Parameter aus einer URL parsen und ggf. ändern
Hey,
Ich habe z.B folgende URL: ![]() Nun würde ich die Parameter dieser URL gerne bequem ändern, ohne da jetzt groß was mit Pos(), Copy(), Insert() usw. zu veranstalten, damit es vll. später so aussieht: ![]() Bei den Indys und in der Win32 API habe ich zwar Methoden gefunden, mit der ich eine URL zerlegen bzw. parsen kann, aber ich bräuchte etwas, womit ich gezielt und bequem irgwelche Parameter manipulieren kann. Kennt da jmd. was oder muss man da doch die hässlichen Pos(), Copy() etc. Funktionen verwenden? |
Re: Parameter aus einer URL parsen und ggf. ändern
Nö :mrgreen:
Delphi-Quellcode:
Um das aus der StringList wieder in eine URL zu bekommen könnte man folgendes machen:
function GetParameters(url: String; var sl: TStringList): Boolean;
var params: String; begin params := Copy(url, pos('?', url)+1, length(url)); sl.Delimiter := '&'; sl.DelimitedText := params; result := sl.Count <> 0; end;
Delphi-Quellcode:
Und/Oder um die Parameterliste zu ändern:
function PutParameters(baseurl: String; var sl: TStringList): string;
var i: Integer; begin result := baseurl + '?'; for i := 0 to sl.Count-2 do begin result := result + sl[i] + '&'; end; if sl.Count > 0 then begin result := result + sl[sl.Count-1]; end; end;
Delphi-Quellcode:
Aufruf, Beispiel:
function ChangeParameters(url: String; var sl: TStringList): string;
begin result := Copy(url, 1, Pos('?', url)-1); result := PutParameters(result, sl); end;
Delphi-Quellcode:
Ungetestet hingetippelt :mrgreen:
var myparams: TStringList;
... myParams := TStringList.Create; if GetParams('http://www.seite.de/index.php?id=1&name=abc&f=87', myParams) then begin myParams.Values['id'] := 25; end; |
Re: Parameter aus einer URL parsen und ggf. ändern
Ah, Vielen Dank für den Tipp mit der StringList und der Eigenschaft "Values", das hätte mir schon gereicht.
:dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz