Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.09;
Скачать: CL | DM;

Вниз

строка   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
15-1187170981
Вася Правильный
2007-08-15 13:43
2007.09.09
снова про калаш


15-1187095586
andreoman
2007-08-14 16:46
2007.09.09
ограничение кол-ва символов сообщения в Outlook


15-1186493075
Piter
2007-08-07 17:24
2007.09.09
Карьерные тягачи


2-1187346621
preved
2007-08-17 14:30
2007.09.09
Винчестеры


3-1179235032
DelphiLexx
2007-05-15 17:17
2007.09.09
Заставить DBGridEh перерисовать Footer