AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

%20 in Leerzeichen Umwandeln

Ein Thema von la.reunion · begonnen am 25. Jun 2006 · letzter Beitrag vom 20. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#1

%20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 16:54
Hallo, ich möchte in kelines prog schriben mit dem ich Leerzeichen %20 umwandeln kann und anders rum wie amche cih das?
(Einen Lik umwandeln!!!)#

Lg La.Reunion
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: %20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 16:56
Delphi-Referenz durchsuchenStringReplace
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#3

Re: %20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 16:58
danke!

Mhh das verstehe ich nciht ganz kannst du mir ein beispiel dazu posten?
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: %20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 17:01
vll so (nicht probiert)

Delphi-Quellcode:
function URLEncode(URL: string): string;
var
  i:integer;
  URL2: string;
begin
  URL2 := '';
  for i := 0 to length(URL) - 1 do
  begin
    if URL[i] in ['a'..'z', 'A'..'Z', '.', '-', '_', '0'..'9'] {kontrolle erweitert...} then URL2 := URL2 + '%' + IntToHex(ord(URL[i]), 2) //in der Eile die umwandlung vergessen
    else URL2 := URL2 + URL[i];
  end;
  //result vergessen
  result := URL2;
end;
vlees91
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: %20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 17:03
Naja, ich würde das nicht so einfach machen, weil das % Zeichen selber auch escape't werden kann. Wenn man ein % in der URL haben möchte, dann schreibt man %%, somit sollte eine URL von "%%20" falsch von dir verarbeitet werden. Auch fehlen dir dann z.B. die Punkte (%2F) etc. Geh lieber die Zeichenkette durch und bau alle Elemente mit % und einem 2-stelligem Hexadezimalwert um (es ist der ANSI Code des Zeichens angegeben) und ignorieren %% Zeichen. Dann biste auf der sicheren Seite.
  Mit Zitat antworten Zitat
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#6

Re: %20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 17:05
??! Mhhh ich hatte mir das irgendwie unkomplizierter vorgestellt
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: %20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 17:07
@muetze1:ist das auf meinen oder auf arbu mans bezogen?
meine funktioniert imho so wie bei php urlencode bzw rawurlencode
vlees91
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: %20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 17:16
Hallo,

wer die Indy-Komponenten verwendet, der kann die Methoden UrlEncode() und UrlDecode() von TIdURI (V9) benutzen um die percent escapes zu erstellen oder aufzulösen.

Grüße vom marabu

Edit: ich hänge mal die eine Zeile Code unauffällig hier rein, damit der schwungvolle thread nicht abrupt zum Halten kommt:

Delphi-Quellcode:
uses
  IdURI;

function URLDecode(uri: String): String;
begin
  Result := TIdURI.URLDecode(uri);
end;
Das Prozentzeichen muss übrigens %25 codiert sein - %% habe ich im Standard nicht entdecken können.
  Mit Zitat antworten Zitat
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, 17: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
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: %20 in Leerzeichen Umwandeln

  Alt 25. Jun 2006, 17:23
Zitat von Brainstalker:
Delphi-Quellcode:
Encode:
URL := TranslateURL(URL, true);

Decode:
URL := TranslateURL(URL[b],[/b] false);
und Encode ist das kodieren und bei dir wird bei Encode := false kodiert

bei der kodierung nicht die großbuchstaben vergessen... (sry hab das lowercase übersehen)
vlees91
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:34 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