![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
строка
Swest © (2007-08-18 01:21:00)Мастера помогите привести строку к божескому виду в ansi
G:/%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0/%D0%9A%D0%B8%D0%BF%D0%B5%D0%BB%D0%BE%D0%B2/%D0%A0%D0%B5%D0%BA%D0%B8%20%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD/02.%20%D0%94%D1%8B%D1%85%D0%B0%D0%BD%D1%8C%D0%B5%20%D1%82%D1%8C%D0%BC%D1%8B.mp3
{RASkov} (2007-08-18 15:58:00) [1]Вот неудача...(
Я думал там по нижней ссылке именно то, что нужно(столько много кода) и с уже "нормальной" кодировкой, а вот только, что проверил ради интереса...
тоже самое, что и у меня в [5] :)
{RASkov} (2007-08-18 15:16:00) [2]Вот так даже лучше.... не нужен вызов StringReplace )
function ConverStr(const S: String): String;
function HexCHToStrCH(const HexCH: String): String;
begin
try
Result:=CHR(StrToInt(Result));
except
Result:=HexCH;
end;
end;
var N: Integer; C: String;
begin
Result:=S;
repeat
N:=Pos('%', Result);
if N=0 then Break;
C:=HexCHToStrCH(Copy(Result, N+1, 2));
Delete(Result, N, 3);
Insert(C, Result, N);
until Pos('%', Result)=0;
end;
Впрочем вот:
http://www.google.com/search?ie=UTF-8&hl=ru&q=%55%52%4C%20%65%6E%63%6F%64%65%20%2B%20%44%65%6C%70%68%69
http://tmbu.info/programming/delphi/urlencode-and-urldecode-in-delphi/
{RASkov} (2007-08-18 15:09:00) [3]Накидал процедурку, но она не верно работает..... т.е. верно, но кодировку нужно подправить... См ниже.
function ConverStr(const S: String): String;
function HexCHToStrCH(const HexCH: String): String;
begin
try
Result:=StringReplace(HexCH, '%', '$', [rfReplaceAll, rfIgnoreCase]);
Result:=CHR(StrToInt(Result));
except
Result:=HexCH;
end;
end;
var N: Integer; C: String;
begin
Result:=S;
repeat
N:=Pos('%', Result);
if N=0 then Break;
C:=HexCHToStrCH(Copy(Result, N, 3));
Delete(Result, N, 3);
Insert(C, Result, N);
until Pos('%', Result)=0;
end;
--------------------------------------------------------------
const MyCode: array [0..255] of Byte = (0, 1, 2, 3,....); //Расположи символы так как необходимо....
function ConverStr(const S: String): String;
function HexCHToStrCH(const HexCH: String): String;
begin
try
Result:=StringReplace(HexCH, '%', '$', [rfReplaceAll, rfIgnoreCase]);
Result:=CHR(MyCode[StrToInt(Result)]);
except
Result:=HexCH;
end;
end;
....
Anatoly Podgoretsky (2007-08-18 12:58:00) [4]Это и так в божеском виде, это URL encoded
Dimaxx (2007-08-18 12:55:00) [5]Это не кодировка. Это просто символы представлены ASCII-кодами. Символ % с двумя цифрами в 16-ричном представлении.
Пример кода: Простой перебор всех символов строки. При нахождении % считываем два следующих за ним символа, добавляем $ и преобразовываем, например, так: Chr(StrToInt('$D0')). На выходе получим символ.
Swest (2007-08-18 08:34:00) [6]Спасибо , а можно пример кода смены кодировки .
{RASkov} (2007-08-18 03:39:00) [7]file://localhost/G:/Музыка/Кипелов/Реки%20времен/02.%20Дыханье%20тьмы.mp3
%20 - это пробелы :)