Вниз
Скачать: CL | DM;

Преобразование Base64   Найти похожие ветки 

← →
Lods   (2004-03-09 21:27) [0]

Я вот нашел код:

const
BASE64_TABLE: string =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

procedure EncodeUnit(const AIn1, AIn2, AIn3: Byte; var VOut: Cardinal);
var
LUnit: packed record
 case Integer of
  0: (Byte1, Byte2, Byte3, Byte4: Byte);
  1: (Whole: Cardinal);
end;
begin
LUnit.Byte1 := ord(BASE64_TABLE[((AIn1 shr 2) and 63) + 1]);
LUnit.Byte2 := ord(BASE64_TABLE[(((AIn1 shl 4) or (AIn2 shr 4)) and 63) + 1]);
LUnit.Byte3 := ord(BASE64_TABLE[(((AIn2 shl 2) or (AIn3 shr 6)) and 63) + 1]);
LUnit.Byte4 := ord(BASE64_TABLE[(Ord(AIn3) and 63) + 1]);
VOut := LUnit.Whole;
end;

function Encode64(const Src: string): string;
var
LBuffer: string;
LSize: Integer;
LLen: Integer;
LBufSize: Integer;
LPos: Integer;
LIn1, LIn2, LIn3: Byte;
LUnit: packed record
 case Integer of
  0: (Byte1, Byte2, Byte3, Byte4: Byte);
  1: (Whole: Cardinal);
end;
begin
Result := "";
LIn3 := 0;
LBufSize := Length(Src);
if LBufSize = 0 then Exit;

SetLength(Result, ((LBufSize + 2) div 3) * 4);
LLen := 0;
LBuffer := Src;
LPos := 1;
while (LPos <= LBufSize) do
 begin
  LIn1 := Byte(LBuffer[LPos]);
  Inc(LPos);
  if (LPos <= LBufSize) then
   begin
    LIn2 := Byte(LBuffer[LPos]);
    Inc(LPos);
    if (LPos <= LBufSize) then
     begin
      LIn3 := Byte(LBuffer[LPos]);
      Inc(LPos);
      LSize := 3;
     end
    else
     begin
      LIn3 := 0;
      LSize := 2;
     end;
   end
  else
   begin
    LIn2 := 0;
    LSize := 1;
   end;
  EncodeUnit(LIn1, LIn2, LIn3, LUnit.Whole);
  Move(LUnit, Result[LLen + 1], 4);
  Inc(LLen, 4);
  if (LSize < 3) then
   begin
    Result[LLen] := FILL_CHAR;
    if (LSize = 1) then Result[LLen - 1] := FILL_CHAR;
   end;
 end;
end;


Но компилятор ругается, не знает что такое FILL_CHAR


← →
Pat ©   (2004-03-10 00:24) [1]

А что такое FILL_CHAR?


← →
Gero ©   (2004-03-10 00:28) [2]

Я тоже нашел код:

ShowMessage(HELLO_WORLD_CONST);

Но компилятор ругается. Матом.


← →
Алхимик ©   (2004-03-10 00:40) [3]

Константа символьная. Иль переменная. Тоже символьная.


← →
Lods   (2004-03-10 19:33) [4]

А, так вы тут оффигенные шутники... здорово.

Может, кто-нибудь скажет по существу?
Могу повторить - мне нужен алгоритм кодирования Base64. Я просто сказал, что нашел код в интернете, тогдп может быть кто подскажет что такое FILL_CHAR?

Или другой какой-нибудь код...


← →
Warrior ©   (2004-03-10 21:31) [5]

> А, так вы тут оффигенные шутники... здорово

А Вы не знали? На этом сайте собрались все лучшие шутники инета.

> быть кто подскажет что такое FILL_CHAR

Вы посты вобще читаете? [3]


← →
Lods   (2004-03-10 22:18) [6]

Вы посты вобще читаете? [3]

Что, типа еще раз пошутил? Поздравляю! Ежу понятно, что если функция должна вернуть строку, то Result[LLen] := FILL_CHAR;
это строка! Блин...


← →
Никто ©   (2004-03-10 22:20) [7]

Не строка, а символ...Блин...


← →
Алхимик ©   (2004-03-10 22:26) [8]


> [6] Lods   (10.03.04 22:18)
> Вы посты вобще читаете? [3]
>
> Что, типа еще раз пошутил? Поздравляю! Ежу понятно, что
> если функция должна вернуть строку, то Result[LLen] := FILL_CHAR;
> это строка! Блин...


На лицо неадекватное восприятие окружающей действительности...


← →
vuk ©   (2004-03-10 22:30) [9]

Если ничего не путаю, то этот символ для Base64 - "="
т.е
const
 FILL_CHAR = "=";


← →
Nikolay M. ©   (2004-03-11 09:27) [10]

http://delphiworld.narod.ru/base/base64_encode_decode.html
не спасет отца русской демократии?


← →
Lods   (2004-03-11 19:47) [11]

Nikolay M
вполне возможно, что и спасет :)
Спасибо



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: -0.978 c
1-1079463081
Magisimus
2004-03-16 21:51
2004.04.04
Вопрос ко всем, как можно узнать размер папки?


1-1079361777
RomeoGolf
2004-03-15 17:42
2004.04.04
Canvas.ClipRect


3-1078401153
LAndreyV
2004-03-04 14:52
2004.04.04
Query1.Delete - иногда работает, а иногда выдает ошибку


3-1078920200
Kein
2004-03-10 15:03
2004.04.04
Сохранение массива в базе


14-1078891957
тихий вовочка
2004-03-10 07:12
2004.04.04
Как работает поиск на этом сайте?




   Наверх