скрыть

скрыть

  ‘орум  

Delphi FAQ - „асто задаваемые вопросы

| Ѕазы данных | √рафика и »гры | »нтернет и —ети |  омпоненты и  лассы | ћультимедиа |
| ќ— и ∆елезо | ѕрограмма и »нтерфейс | –абочий стол | —интаксис | “ехнологии | ‘айлова€ система |



Google  
 

ѕерекодирование



Ётот алгоритм позвол€ет перекодировать текст. –еализованы кодировки Windows-1251, KOI8-R, ISO-8859-5 и DOS.  одировка Ц это таблица, в которой указано, например, что символ под номером 160 - это русска€ буква "а", а под номером 150 Ц "÷" и т. д.  одировки различаютс€ номерами русских букв (как располагать английские буквы договорились). –азные компьютеры в »нтернете используют разные кодировки. » поэтому, когда русский текст идет по »нтернету, его многократно перекодируют.

Ётот алгоритм обеспечивает высокую скорость перекодировани€ больших объемов данных.


procedure TForm1.Button1Click(Sender: TObject);
var
  code1, code2: TCode;
  s: string;
  c: char;
  i: integer;
  chars: array [char] of char;
  str: array [TCode] of string;
begin
  case ComboBox1.ItemIndex of
    1: code1 := koi;
    2: code1 := iso;
    3: code1 := dos;
    else code1 := win;
  end;
  case ComboBox2.ItemIndex of
    1: code2 := koi;
    2: code2 := iso;
    3: code2 := dos;
    else code2 := win;
  end;
  s := Memo1.Text;

  Str[win] := 'јаЅб¬в√гƒд≈е∆ж«з»и…й кЋлћмЌнќоѕп–р—с“т”у‘ф’х÷ц„чЎшўщЏъџы№ьЁэёюя€';
  Str[koi] := 'юёајбЅц÷дƒе≈ф‘г√х’и»й…к лЋмћнЌоќпѕ€яр–с—т“у”ж∆в¬ь№ыџз«шЎэЁщўч„ъЏ';
  Str[iso] := '–р—с“т”у‘ф’х÷ц„чЎшўщЏъџы№ьЁэёюя€а¹б¸в?гƒдºе¾ж³з¿и¼йšкœлžм?нІо¢пŸ';
  Str[dos] := 'И ?¡В¢ƒ£Д§Е¥Ж¶ЗІˆ¨Й©ŠªЛ"Œђ?≠ŽЃ?¯?а'б'вУгФдХеЦжЧз˜иЩйšкЫлœм?нžоŸп';

  for c := #0 to #255 do
    Chars[c] := c;

  for i := 1 to Length(Str[win]) do
    Chars[Str[code2][i]] := Str[code1][i];

  for i := 1 to Length(s) do
    s[i] := Chars[s[i]];

  Memo2.Text := s;
end;






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




√руппа ¬ онтакте   —сылка на Twitter   √руппа на Facebook