Чтение онлайн

на главную - закладки

Жанры

Интернет решения от доктора Боба

Swart Bob

Шрифт:

'a'..'z': Kwartet[i] := 26+ Kwartet[i]

– Ord('a') + Ord(SP);

'0'..'9': Kwartet[i] := 52+ Kwartet[i]

– Ord('0') + Ord(SP);

'+': Kwartet[i] := 62+ Ord(SP);

'/': Kwartet[i] := 63+ Ord(SP);

end

end

end

else

if XXCode then

begin

for i:=0 to 3 do

begin

case Chr(Kwartet[i]) of

'+': Kwartet[i] := 0 + Ord(SP);

'-': Kwartet[i] := 1 + Ord(SP);

'0'..'9': Kwartet[i] := 2 + Kwartet[i]

– Ord('0') + Ord(SP);

'A'..'Z': Kwartet[i] := 12 + Kwartet[i]

– Ord('A') + Ord(SP);

'a'..'z': Kwartet[i] := 38 + Kwartet[i]

– Ord('a') + Ord(SP)

end

end

end;

Triplet[0] := ((Kwartet[0] - Ord(SP)) SHL 2) +

(((Kwartet[1] - Ord(SP)) AND $30) SHR 4);

Triplet[1] := (((Kwartet[1] - Ord(SP)) AND $0F) SHL 4) +

(((Kwartet[2] - Ord(SP)) AND $3C) SHR 2);

Triplet[2] := (((Kwartet[2] - Ord(SP)) AND $03) SHL 6) +

((Kwartet[3] - Ord(SP)) AND $3F)

 end {Kwartet2Triplet};

Заметим,

что в новой версии появилась новая глобальная переменная, которая используется для определения формата кодирования.

1.1.4. MIME

MIME означает Multipurpose Internet Mail Extensions (Расширение форматов Интернет почты), в котором международным стандартом является кодирование Base64. Данное расширение было разработано для многоязычной поддержки и преобразования символов между системами (такими как IBM мейнфреймы, системы на базе UNIX, Macintosh и IBM PC).

MIME алгоритм кодирования базируется на RFC1341 как MIME Base64. Подобно UUencode, назначение MIME кодировать двоичные файлы так, что бы они смогли пройти через различные почтовые системы, и MIME использует для этого алгоритм кодирования Base64, плюс набор специальных ключевых слов и опций, которые используются для более детализированной информации о содержимом MIME.

1.1.5. TBUUCode компонент

Определение интерфейса компонента TUUCode, базируется на ранее приведенных и объясненных процедур Triplet2Kwartet и Kwartet2Triplet, заметим, что ниже приведенный код использует условное компилирование в зависимости от версий Delphi и C++Builder.

unit UUCode;

 interface

 uses

 {$IFDEF WIN32}

Windows,

 {$ELSE}

WinTypes, WinProcs,

 {$ENDIF}

SysUtils, Messages, Classes, Graphics, Controls, Forms;

 {$IFNDEF WIN32}

 type

ShortString = String;

 {$ENDIF}

 type

EUUCode = class(Exception);

TAlgorithm = (filecopy, uuencode, uudecode, xxencode, xxdecode, Base64encode, Base64decode);

TUnixCRLF = (CRLF, LF);

TProgressEvent = procedure(Percent:Word) of Object;

TBUUCode = class(TComponent)

public

{ Public class declarations (override) }

constructor Create(AOwner: TComponent); override;

private

{ Private field declarations }

FAbout: ShortString;

FActive: Boolean;

FAlgorithm: TAlgorithm;

FFileMode: Word;

FHeaders: Boolean;

FInputFileName: TFileName;

FOutputFileName: TFileName;

FOnProgress: TProgressEvent;

FUnixCRLF: TUnixCRLF;

{ Dummy method to get read-only About property }

procedure Dummy(Ignore: ShortString);

protected

{ Protected Activate method }

procedure Activate(GoActive: Boolean);

public

{ Public UUCode interface declaration }

procedure UUCode;

published

{ Published design declarations }

Поделиться:
Популярные книги

Я не Монте-Кристо

Тоцка Тала
Любовные романы:
современные любовные романы
5.57
рейтинг книги
Я не Монте-Кристо

Адвокат вольного города

Парсиев Дмитрий
1. Адвокат
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Адвокат вольного города

Орден Багровой бури. Книга 4

Ермоленков Алексей
4. Орден Багровой бури
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Орден Багровой бури. Книга 4

Убивать чтобы жить 9

Бор Жорж
9. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 9

Защитник

Астахов Евгений Евгеньевич
7. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Защитник

Законы Рода. Том 11

Flow Ascold
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11

Город Богов

Парсиев Дмитрий
1. Профсоюз водителей грузовых драконов
Фантастика:
юмористическая фантастика
детективная фантастика
попаданцы
5.00
рейтинг книги
Город Богов

Седьмая жена короля

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Седьмая жена короля

Плеяда

Суконкин Алексей
Проза:
военная проза
русская классическая проза
5.00
рейтинг книги
Плеяда

Товарищ "Чума"

lanpirot
1. Товарищ "Чума"
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Товарищ Чума

Идеальный мир для Лекаря 10

Сапфир Олег
10. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 10

Три `Д` для миллиардера. Свадебный салон

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
7.14
рейтинг книги
Три `Д` для миллиардера. Свадебный салон

Я еще не князь. Книга XIV

Дрейк Сириус
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще не князь. Книга XIV

Попаданка в деле, или Ваш любимый доктор - 2

Марей Соня
2. Попаданка в деле, или Ваш любимый доктор
Любовные романы:
любовно-фантастические романы
7.43
рейтинг книги
Попаданка в деле, или Ваш любимый доктор - 2