AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi String(ansi) to Url-Encoded String
Thema durchsuchen
Ansicht
Themen-Optionen

String(ansi) to Url-Encoded String

Offene Frage von "rossinie00"
Ein Thema von rossinie00 · begonnen am 23. Mär 2005 · letzter Beitrag vom 27. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
rossinie00

Registriert seit: 9. Mai 2004
Ort: Nonnweiler
62 Beiträge
 
#1

String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 21:08
gugux,
ich bin auf der suche nach einer procedure oder einer möglichkeit besser gesagt um einen ansistring in einen url-encoded string umzuwandeln. Nicht die buchstaben nur also die sonderzeichen.
zb. whitespace = + oder so
Danke
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#2

Re: String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 21:55
Richtig: whitespace = +
Die anderen sind die Hexadezimalcodes z.B. das Zeichen "&" ist dann "%26"

Folgender Code ist die Umkehrung deiner Frage:
Delphi-Quellcode:
// Converts a URLencoded string to a normal string
Function DecodeURL(Instr: String): String;
Var
   S: String;
   X: Integer;
   C,N1,N2: Char;
Begin
   If Instr='then exit;
   S := '';
   TempURL := Instr; // Copy URLencoded string
   Index := 1; // Reset string index
   Repeat
      C := GetURLchar; // Get next character
      If C='%then // If it's a hex esc char
      Begin
         N1 := GetURLchar; // Get first digit
         N2 := GetURLchar; // Get second digit
         X := (Hex2Int(N1)*16)+Hex2Int(N2); // Convert to integer
         S := S+Chr(X); // Add character
      end else
      If C='+then // If + then convert to space
         S := S+' else
      S := S+C; // Just add character
   Until C=' '; // Until no more in string
   Result := S;
end;
Hoffe das hilft Dir.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#3

Re: String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 22:09
Hallo,

das hast Du gesucht, oder
Delphi-Quellcode:
Function URLEncode(Value : String) : String;
Var I : Integer;
Begin
   Result := '';
   For I := 1 To Length(Value) Do
      Begin
         If Pos(UpperCase(Value[I]), ValidURLChars) > 0 Then
            Result := Result + Value[I]
         Else
            Begin
               If Value[I] = ' Then
                  Result := Result + '+'
               Else
                  Begin
                     Result := Result + '%';
                     Result := Result + IntToHex(Byte(Value[I]), 2);
                  End;
            End;
      End;
End;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
rossinie00

Registriert seit: 9. Mai 2004
Ort: Nonnweiler
62 Beiträge
 
#4

Re: String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 22:36
das 2.
aber da klebt er bei: ValidURLChars als undef bezeichner.
muss ich da noch was in die uses eintragen?
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#5

Re: String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 22:46
was vergessen
Const ValidURLChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_@.&+-!*"''(),;/#?:';
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
rossinie00

Registriert seit: 9. Mai 2004
Ort: Nonnweiler
62 Beiträge
 
#6

Re: String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 23:10
irgendwie macht es nicht das, wie's soll.

hab jetzt

test := URLEncode(test);
macht er nicht
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 23:14
Warum die ganze Arbeit? MSDN-Library durchsuchenUrlCanonicalize

Zitat:
Takes a URL string and converts it into canonical form.
[..]
This function performs such tasks as replacing unsafe characters with their escape sequences and collapsing sequences like "..\...".
Ist allerdings in der shlwapi.dll drinne und da weiß ich nicht, ob es dafür schon eine Übersetzung für Delphi gibt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
rossinie00

Registriert seit: 9. Mai 2004
Ort: Nonnweiler
62 Beiträge
 
#8

Re: String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 23:18
Zitat:
Ist allerdings in der shlwapi.dll drinne und da weiß ich nicht, ob es dafür schon eine Übersetzung für Delphi gibt.
desswegen die ganze arbeit *g*
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#9

Re: String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 23:40
Zitat von rossinie00:
irgendwie macht es nicht das, wie's soll.

hab jetzt

test := URLEncode(test);
macht er nicht
Poste mal deinen Code.
Bei mir klappt es, hab es gerade nochmal getestet.
Aus 'http://www.google.de/search?hl=de&q=Delphi&meta='
wird 'http://www.google.de/search?hl%3Dde&q%3DDelphi&meta%3D'
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
rossinie00

Registriert seit: 9. Mai 2004
Ort: Nonnweiler
62 Beiträge
 
#10

Re: String(ansi) to Url-Encoded String

  Alt 23. Mär 2005, 23:43
hab ich doch. ist relativ komplex und nicht gpl.
bei mir siehts so aus:

text := urlencode(memo1.text);
memo1.text := text ;
  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 19:39 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