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

Здесь есть возможность читать онлайн «Bob Swart - Интернет решения от доктора Боба» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Интернет решения от доктора Боба: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Интернет решения от доктора Боба»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Интернет решения от доктора Боба — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Интернет решения от доктора Боба», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Завершающая строка начинается с ключевого слова "end"

Кодированные строки располагаются между заголовком и завершающей строкой, и могут содержать максимум 61 символ, первый символ указывает размер строки и максимум 60 символов сама строка.

Первый символ строки содержит длину строки из набора символов UUEncode, для получения подлинной длины строки из кода символов вычитается 32 ($20).

Строки данных могут содержать максимум 60 символов, это означает, что первый символ строки (длина) может быть 'M' (60 символ набора символов UUEncode).

Действительные данные группируются по четыре байта.

Три символа из входного фала (3 * 8 = 24 бита) кодируются в четыре символа, так что каждый из них содержит только 6 бит, то есть значения от 0 до 63.

Результат затем используется как индекс в таблицу набора символов UUEncode.

Так как каждый кодированный символ представляет из себя простой символ таблицы ASCII начинающийся с позиции 33 и до позиции 64 + 32 = 96, то мы можем просто прибавить ASCII значение символа пробела, что бы получить требуемый UUкодированный символ.

Алгоритм преобразовывает три двоичных символа (Triplet) в четыре (Kwartet) UUкодированных символа и может быть реализован в Паскале следующим образом.

procedureTriplet2Kwartet( constTriplet: TTriplet; varKwartet: TKwartet);

var

i: Integer;

begin

Kwartet[0] := (Triplet[0] SHR2);

Kwartet[1] := ((Triplet[0] SHL4) AND$30) +

((Triplet[1] SHR4) AND$0F);

Kwartet[2] := ((Triplet[1] SHL2) AND$3C) +

((Triplet[2] SHR6) AND$03);

Kwartet[3] := (Triplet[2] AND$3F);

fori:=0 to3 do

ifKwartet[i] = 0 then

Kwartet[i] := $40 + Ord(SP)

elseInc(Kwartet[i], Ord(SP))

end {Triplet2Kwartet} ;

Данная процедура состоит из из двух частей: в первой части 24 бита (3 * 8) из триплета преобразовываются в 24 бита (4 * 6) квартета. Во второй части алгоритма, мы добавляем ASCII код символа пробела к каждому квартету. ASCII код символа пробела закодирован как Ord(SP), где SP определен как символ пробела или #32. Заметим, что для случая когда квартет равен 0, то мы не добавляем значение #32, поскольку многие почтовые программы имеют проблемы с этим символом, просто в этом случае добавляем код со значением 64 ($40), в результате получаем вместо пробела код обратного апострофа, который нейтрален к алгоритму декодирования, одинаково работающий как для пробела так и для апострофа.

Говоря о декодировании, реализация его в Паскале преобразования квартетов обратно в триплеты следующая:

procedureKwartet2Triplet( constKwartet: TKwartet; varTriplet: TTriplet);

var

i: Integer;

begin

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

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

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

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

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

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

end {Kwartet2Triplet} ;

Если размер триплета в файле менее 3 байт (4 байта в квартете), то производится добавление структуры нулями при кодировании и декодировании.

1.1.2. XXEncode и XXDecode

UUкодирование было наиболее популярным форматом 64 битного кодирования. Ограничение состояло в том, что набор символов не мог транслироваться между наборами ASCII и EBCDIC (IBM мейнфреймы). XXencode очень похож на UUEncode, просто используется другой набор символов, что более удобно между различными типами систем, например как указано выше между EBCDIC и ASCII.

Набор символов XXEncode
0 + 8 6 16 E 24 M 32 U 40 c 48 k 56 s
1 – 9 7 17 F 25 N 33 V 41 d 49 l 57 t
2 0 10 8 18 G 26 O 34 W 42 e 50 m 58 u
3 1 11 9 19 H 27 P 35 X 43 f 51 n 59 v
4 2 12 A 20 I 28 Q 36 Y 44 g 52 o 60 w
5 3 13 B 21 J 29 R 37 Z 45 h 53 p 61 x
6 4 14 C 22 K 30 S 38 a 46 i 54 q 62 y
7 5 15 D 23 L 31 T 39 b 47 j 55 r 63 z

Заметим что если для UUEncodeиспользуется подмножество набора символов ASCII (32..96), то для XXEncode это не так.

Для преобразования процедур Triplet2Kwartet и Kwartet2Triplet для поддержки мы вводим дополнительный массив из 64 символов.

Нам также необходимо модифицировать процедуры Triplet2Kwartet и Kwartet2Triplet следующим образом.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Интернет решения от доктора Боба»

Представляем Вашему вниманию похожие книги на «Интернет решения от доктора Боба» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


libcat.ru: книга без обложки
Анонимные Алкоголики
Боб Шоу - Bob Shaw
Боб Шоу
Отзывы о книге «Интернет решения от доктора Боба»

Обсуждение, отзывы о книге «Интернет решения от доктора Боба» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x