AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Parameter aus einer URL parsen und ggf. ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Parameter aus einer URL parsen und ggf. ändern

Ein Thema von kcx · begonnen am 9. Jul 2008 · letzter Beitrag vom 9. Jul 2008
Antwort Antwort
kcx

Registriert seit: 19. Feb 2008
44 Beiträge
 
#1

Parameter aus einer URL parsen und ggf. ändern

  Alt 9. Jul 2008, 22:37
Hey,

Ich habe z.B folgende URL:
http://www.seite.de/index.php?id=1&name=abc&f=87

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:
http://www.seite.de/index.php?id=25x&name=123a&f=12

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?
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Parameter aus einer URL parsen und ggf. ändern

  Alt 9. Jul 2008, 23:00


Delphi-Quellcode:
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;
Um das aus der StringList wieder in eine URL zu bekommen könnte man folgendes machen:

Delphi-Quellcode:
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;
Und/Oder um die Parameterliste zu ändern:

Delphi-Quellcode:
function ChangeParameters(url: String; var sl: TStringList): string;
begin
  result := Copy(url, 1, Pos('?', url)-1);
  result := PutParameters(result, sl);
end;
Aufruf, Beispiel:

Delphi-Quellcode:
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;
Ungetestet hingetippelt
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
kcx

Registriert seit: 19. Feb 2008
44 Beiträge
 
#3

Re: Parameter aus einer URL parsen und ggf. ändern

  Alt 9. Jul 2008, 23:22
Ah, Vielen Dank für den Tipp mit der StringList und der Eigenschaft "Values", das hätte mir schon gereicht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz