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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2008, 16:03   #1
BlackOmen
Пользователь
 
Аватар для BlackOmen
 
Регистрация: 27.02.2008
Сообщений: 54
По умолчанию base64

Выложите, пожалуйста, функцию, осуществляющую данный вид кодирования.
BlackOmen вне форума Ответить с цитированием
Старый 02.05.2008, 16:19   #2
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
По умолчанию

Вроде бы так...
Код:
const 
  Codes64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/'; 

function Encode64(S: string): string; 
var 
  i: Integer; 
  a: Integer; 
  x: Integer; 
  b: Integer; 
begin 
  Result := ''; 
  a := 0; 
  b := 0; 
  for i := 1 to Length(s) do 
  begin 
    x := Ord(s[i]); 
    b := b * 256 + x; 
    a := a + 8; 
    while a >= 6 do 
    begin 
      a := a - 6; 
      x := b div (1 shl a); 
      b := b mod (1 shl a); 
      Result := Result + Codes64[x + 1]; 
    end; 
  end; 
  if a > 0 then 
  begin 
    x := b shl (6 - a); 
    Result := Result + Codes64[x + 1]; 
  end; 
end; 

function Decode64(S: string): string; 
var 
  i: Integer; 
  a: Integer; 
  x: Integer; 
  b: Integer; 
begin 
  Result := ''; 
  a := 0; 
  b := 0; 
  for i := 1 to Length(s) do 
  begin 
    x := Pos(s[i], codes64) - 1; 
    if x >= 0 then 
    begin 
      b := b * 64 + x; 
      a := a + 6; 
      if a >= 8 then 
      begin 
        a := a - 8; 
        x := b shr a; 
        b := b mod (1 shl a); 
        x := x mod 256; 
        Result := Result + chr(x); 
      end; 
    end 
    else 
      Exit; 
  end; 
end;
prizrak1390 вне форума Ответить с цитированием
Старый 02.05.2008, 16:30   #3
BlackOmen
Пользователь
 
Аватар для BlackOmen
 
Регистрация: 27.02.2008
Сообщений: 54
По умолчанию

держи спасибо!
BlackOmen вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кодировать в base64 furstenberg Общие вопросы Delphi 13 29.08.2008 17:02