Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > EscapeString


Автор: armor85 15.11.2007, 09:42
WMLScript escapeString() Function
Есть аналог на Delphi?
И если кто знает, подскажите хор. библиотеку для работы со строками.

Автор: Alexeis 15.11.2007, 10:04
что делает escapeString ?

Автор: armor85 15.11.2007, 10:18
n = URL.escapeString(url)
 n - The string returned from the function 
 url - A string

 Example
  var a = URL.escapeString("http://w3Schools.com/wml/");

 Result
   a = "http%3a%2f%2fw3Schools.com%2fwml%2f"

это в WMLScript так

Автор: Alexeis 15.11.2007, 10:39
Первое что приходит на ум StringReplace();

Автор: armor85 15.11.2007, 12:04
да мне тоже это на ум пришло, но я ж не знаю какие символы и на что заменяются

Автор: Alexeis 15.11.2007, 14:58
В INDY есть специальный класс TIdURI, вот только в новой версии INDY10 он отказывается правильно конвертировать ссылки, так что вот выдранный код из TIdURI от INDY9.
Метод был функцией класса, потому я переделал его в простую функцию
Код

function ParamsEncode(const ASrc: string): string;
var
  i: Integer;
begin
  Result := '';    {Do not Localize}
  for i := 1 to Length(ASrc) do begin
    if ASrc[i] = ' ' then begin    {do not localize}
      Result := Result + '+';    {do not localize}
    end else if NOT (ASrc[i] in ['A'..'Z', 'a'..'z', '0'..'9']) then begin {do not localize}
      Result := Result + '%' + IntToHex(Ord(ASrc[i]), 2);  {do not localize}
    end else begin
      Result := Result + ASrc[i];
    end;
  end;
end;

ShowMessage(ParamsEncode('http://w3Schools.com/wml/'));



Автор: armor85 15.11.2007, 15:57
Alexeis, спасибо большое! Реально помог,
Indy ни когда не пользовался, 
да пользоволся всё равно бы не вспомнил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)