Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
Внизстрока Найти похожие ветки
← →
Swest (2007-08-18 01:21) [0]Мастера помогите привести строку к божескому виду в 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 03:39) [1]file://localhost/G:/Музыка/Кипелов/Реки%20времен/02.%20Дыханье%20тьмы.mp3
%20 - это пробелы :)
← →
Swest (2007-08-18 08:34) [2]Спасибо , а можно пример кода смены кодировки .
← →
Dimaxx © (2007-08-18 12:55) [3]Это не кодировка. Это просто символы представлены ASCII-кодами. Символ % с двумя цифрами в 16-ричном представлении.
Пример кода: Простой перебор всех символов строки. При нахождении % считываем два следующих за ним символа, добавляем $ и преобразовываем, например, так: Chr(StrToInt("$D0")). На выходе получим символ.
← →
Anatoly Podgoretsky © (2007-08-18 12:58) [4]Это и так в божеском виде, это URL encoded
← →
{RASkov} © (2007-08-18 15:09) [5]Накидал процедурку, но она не верно работает..... т.е. верно, но кодировку нужно подправить... См ниже.
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;
....
← →
{RASkov} © (2007-08-18 15:16) [6]Вот так даже лучше.... не нужен вызов 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:58) [7]Вот неудача...(
Я думал там по нижней ссылке именно то, что нужно(столько много кода) и с уже "нормальной" кодировкой, а вот только, что проверил ради интереса...
тоже самое, что и у меня в [5] :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c