äÁ ÅÝÅ Ô.Ë. ×ÓÅÖ ÈÏÔÅÌÏÓØ ÓÜËÏÎÏÍÉÔØ ÎÁ ÍÅÓÔÅ ÒÁÚ ÕÖ ÏÔ ÐÏÒÑÄËÁ ÎÉÞÅÇÏ ÎÅ
ÚÁÍÉÓÉÔ.
òÅÛÉÌ ÐÏÓÍÏÔÒÅÔØ PackGUID ÔÁÍ ÅÓÔØ ÎÅÔÏÞÎÏÓÔÉ
function NxPackGUID (AGUID : TGUID) : string;
var
A : packed array [0..16] of byte absolute AGUID;
ÄÏÌÖÎÏ ÂÙÔØ 0..15 Ô.Ë. TGUID 16 ÂÁÊÔ
N := ((A [P] and $07) shl 2) or ((A [succ (P)] and $C0) shr 6);
Ñ ÔÁË ÐÏÎÉÍÁÀ succ (P) ÎÁÄÏ ÔÏÖÅ ËÏÔÒÏÌÉÒÏ×ÁÔØ ÐÏÜÔÏÍÕ ÄÏÌÖÎÏ ÂÙÔØ ÔÁË
N := ((A [P] and $07) shl 2);
if P <= 14
then N := N or ((A [succ (P)] and $C0) shr 6);
ÄÁÂÙ ÎÅ ÐÏÊÍÁÔØ ÍÕÓÏÒ × 17 ÂÁÊÔÅ ;)
PS ÐÏÔÏÍ ÐÏÞÅÍÕÔÏ ÓÔÒÁÎÎÏÅ ÏÂÒÅÚÁÎÉÅ ÃÉÆÒÏ×ÏÊ ÞÁÓÔÉ, ÏÒÁÔÎÏÅ ÐÏÎÉÍÁÎÉÅ
ÒÁÓÐÏÌÏÖÅÎÉÅ ÂÉÔÏ× ÐÒÉÎÑÔØ ÓÞÉÔÁÔØ ÐÅÒ×ÙÍ ÂÉÔÏÍ ÒÁ×ÙÊ. ïÂÙÞÎÏ ÐÒÉÎÑÔÏ
ÉÓÐÏÌØÚÏ×ÁÔØ ÞÉÓÌÁ ÐÏÌÎÏÓÔØÀ Á ÔÁÍ ÐÏÞÅÍÕÔÏ ÔÏÌØËÏ ÄÏ 6. ðÏÒÙÌÓÑ × ÎÅÔÅ
ÎÉÞÅÇÏ ÕÍÎÏÇÏ ÐÏ ÐÏ×ÏÄÕ ÐÁËÏ×ËÉ ÎÅÎÁÛÅÌ. ìÁÄÎÏ ÆÉÇÎÑ ÜÔÏ ×ÓÅ. ëÏÍÕ ÉÎÔÅÒÅÓÎÏ
Ñ ÎÁÐÉÓÁÌ 2 ×ÁÒÉÁÎÔÁ ÐÁËÏ×ÏË GUID ÐÏ ËÏÄÉÒÏ×ËÁÍ Ó ÕÞÅÔÏÍ ÒÁÓÐÏÌÏÖÅÎÉÑ ÂÉÔ.
32 ÚÎÁËÁ
// LetersPack26 = '0123456789ABCDEFGHIJKLMNOPQRSTUV';
ÐÁËÕÅÔÓÑ ÄÏ 26 ÚÎÁËÏ×
64 ÚÎÁËÁ
// LetersPack22 =
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+';
ÐÁËÕÅÔÓÑ ÄÏ 22 ÚÎÁËÏ× (4 ÚÎÁËÁ ÜÔÏ ÎÅÍÁÌÏ ÏÄÎÁËÏ)
É ÅÄÉÎÁÑ ÆÕÎËÃÉÑ ËÏÔÏÒÁÑ ÌÅÇËÏ ÒÁÓÐÁËÏ×Ù×ÁÅÔ 22, 26, 36
ÍÏÇÕ ×ÙÌÏÖÉÔØ.