Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2008, 22:20   #1
Nixtone
Пользователь
 
Регистрация: 16.10.2007
Сообщений: 17
По умолчанию Шестнадцатириная кодировка

Ребята помогите, как написать прогу преобразования вот таких вещей %D1%EB%F3%F8%E0%FF %F2%E8%F8%E8%ED%F3 в нормальный русский текст?
Nixtone вне форума Ответить с цитированием
Старый 24.05.2008, 22:59   #2
Veiron
Форумчанин
 
Аватар для Veiron
 
Регистрация: 01.12.2007
Сообщений: 346
По умолчанию

По моему на этом форуме где то даже исходники были конвектора, поищи.
Win 10 x64 | VS 2015 | MSSQL 2014
autovestitv.ru
Veiron вне форума Ответить с цитированием
Старый 24.05.2008, 23:08   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Восклицание

Это то что вам надо, нужен модуль Windows:
Код:
function UrlDecode(Str: string): string;

  function HexToChar(W: word): Char;
  asm
   cmp ah, 030h
   jl @@error
   cmp ah, 039h
   jg @@10
   sub ah, 30h
   jmp @@30
@@10:
   cmp ah, 041h
   jl @@error
   cmp ah, 046h
   jg @@20
   sub ah, 041h
   add ah, 00Ah
   jmp @@30
@@20:
   cmp ah, 061h
   jl @@error
   cmp al, 066h
   jg @@error
   sub ah, 061h
   add ah, 00Ah
@@30:
   cmp al, 030h
   jl @@error
   cmp al, 039h
   jg @@40
   sub al, 030h
   jmp @@60
@@40:
   cmp al, 041h
   jl @@error
   cmp al, 046h
   jg @@50
   sub al, 041h
   add al, 00Ah
   jmp @@60
@@50:
   cmp al, 061h
   jl @@error
   cmp al, 066h
   jg @@error
   sub al, 061h
   add al, 00Ah
@@60:
   shl al, 4
   or al, ah
   ret
@@error:
   xor al, al
  end;

  function GetCh(P: PChar; var Ch: Char): Char;
  begin
    Ch := P^;
    Result := Ch;
  end;

var
  P: PChar;
  Ch: Char;
begin
  Result := '';
  P := @Str[1];
  while GetCh(P, Ch) <> #0 do
  begin
    case Ch of
      '+': Result := Result + ' ';
      '%':
        begin
          Inc(P);
          Result := Result + HexToChar(PWord(P)^);
          Inc(P);
        end;
    else
      Result := Result + Ch;
    end;
    Inc(P);
  end;
end;
Alter вне форума Ответить с цитированием
Старый 25.05.2008, 00:24   #4
Nixtone
Пользователь
 
Регистрация: 16.10.2007
Сообщений: 17
По умолчанию

Мои знания еще маловаты, помогите это прикрепить к http://slil.ru/25825082 )) Пожалуйста)))

From Stilet: Не нужно оглашать свои знания какимим бы скудными они ни были непотребными выражениями

Последний раз редактировалось Stilet; 26.05.2008 в 13:54.
Nixtone вне форума Ответить с цитированием
Старый 26.05.2008, 09:02   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
function HexToStr(HexStr:string):string;
 var Hex:byte;
 begin
  Result:='';
  HexStr:=StringReplace(HexStr,'%', '$',[rfReplaceAll, rfIgnoreCase]);
  while Pos('$',HexStr)<>0 do
  begin
   if HexStr[1]=' ' then
   begin
    Result:=Result+' ';
    Delete(HexStr,1,1);
   end;
   Hex:=Strtoint(Copy(HexStr,1,3));
   Delete(HexStr,1,3);
   Result:=Result+chr(Hex)
  end;
 end;
К вашей проге можно применить так:
Вложения
Тип файла: rar trance.rar (187.8 Кб, 11 просмотров)

Последний раз редактировалось SERG1980; 26.05.2008 в 09:30.
SERG1980 вне форума Ответить с цитированием
Старый 26.05.2008, 13:32   #6
Nixtone
Пользователь
 
Регистрация: 16.10.2007
Сообщений: 17
По умолчанию

Большое спасибо)) Очень благодарен!)) На будущее буду знать)))
Nixtone вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка !evgen! Общие вопросы Delphi 4 08.07.2008 13:16
Кодировка Nixtone Помощь студентам 4 27.05.2008 14:12
UTF-8 кодировка OrdJONY Общие вопросы Delphi 2 23.03.2008 16:56
Кодировка Dbf Nikolaeva БД в Delphi 7 05.02.2008 13:24
Кодировка satana Общие вопросы Delphi 1 20.12.2007 02:53