Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

URLEncodeReservedChars [XP]


Эрнест ©   (2015-02-23 11:55:00) 

Долго искал подобную функцию в Интернете, но не нашёл. Пришлось написать самому.

procedure TForm3.Button1Click(Sender: TObject);
const
 URLReservedChars: array [1 .. 22] of Char = ('!', '"', '#', '%', '&', '''',
   '*', ',', ':', ';', '', '?', '[', ']', '^', '`', '{', '|', '}',
   ' ');
const
 URLResrCharCodes: array [1 .. 22] of string[2] = ('21', '22', '23', '25',
   '26', '27', '2A', '2C', '3A', '3B', '3C', '3D', '3E', '3F', '5B', '5D',
   '5E', '60', '7B', '7C', '7D', '20');
var
 lyrics: string;
 I, J: Cardinal;
begin
 lyrics := Memo1.Lines.Text;
 for I := Length(lyrics) downto 1 do
   for J := Low(URLResrCharCodes) to High(URLResrCharCodes) do
     if (lyrics[I] = URLReservedChars[J]) then
     begin
        Delete(lyrics[I], I, 1);
       Insert('%' + URLResrCharCodes[J], lyrics, I);
     end;
 Memo1.Clear;
 Memo1.Lines.Add(lyrics);
end;


Вот только Delphi ругается на выделенную в коде строку: Constant object cannot be passed as var parameter. Не пойму в чём дело.


junglecat   (2015-02-23 12:11:00) [1]

uses httpapp;

HTTPEncode()


MBo   (2015-02-23 12:06:00) [2]

Delete работает со строкой, а lyrics[I] - символ.


Наверх

Титульная страница Поиск, карта сайта Написать письмо