![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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] - символ.