De string -

, eenvoudige, een eenvoudige procedure voor de compressie - string, bijdrage: buit team, je zou' t van mijn routine, die druk hier, hoe dan ook, ze.Wanneer de test, je' als je de beste -, in het Engels en touw.,), eenheid - interface;,, totaal,     compressedstringarraysize = 500; {liever gulle kant}, het type, de     tcompressedstringarray =) [1]. Compressedstringarraysize bytes, getcompressedstring functie; (ARR:tcompressedstringarray): string, het programma; compressstring (st: touw; bevestigt dat tcompressedstringarray,   arr;                                                 var - len: het hele nummer);  ,   st in tcompressedstringarray (len), de Uitvoering van  , totaal,   freqchar: [4]). 14 en&#coke = 39; etaonirshdl en',     {kan en' 't is [...] 0 - 3 omdat twee vacatures betekent dat de functie van de ruimte getcompressedstrin},g(Arr : tCompressedStringArray) : String;, Var,   Shift : Byte;,   i : Integer;,   ch : Char;,   st : String;,   b : Byte;,   Function GetHalfNibble : Byte;,   begin,     GetHalfNibble := (Arr[i] shr Shift) and 3;,     if Shift = 0 then begin,       Shift := 6;,       inc(i);,     end else dec(Shift,2);,   end;, begin,   st := '';,   i := 1;,   Shift := 6;,   Repeat,     b := GetHalfNibble;,     if b = 0 then,       ch := ' ',     else begin,       b := (b shl 2) or GetHalfNibble;,       if b = $F then begin , ,         b := GetHalfNibble shl 6;,         b := b or GetHalfNibble shl 4;,         B = B或gethalfnibble SHL 2;,        B = B或gethalfnibble;,        CH =字符(B);最后,      别的,        CH = freqchar [B];,    端;,    如果CH <;>;# 0圣:= ST CH,CH = #  ;直到0;,  getcompressedstring:=圣;,,程序结束;compressstring(ST:字符串;申明arr tcompressedstringarray;,                         VAR Len:整数);,{将ST成tcompressedstringarray长度为len },VaR,  我:整数,  转变;:字节;,  程序outhalfnibble(B:字节);,  开始,    ARR [兰]:[镜头] = ARR或(b SHL移位);如果,    移= 0然后开始,      转变:= 6;,      公司(LEN);,    端别的DEC(移,2);,   end;,   Procedure OutChar(ch : Char);,   Var,     i : Byte;,     bych : Byte Absolute ch;,   begin,     if ch = ' ' then,       OutHalfNibble(0),     else begin,       i := 4;,       While (i<15) and (FreqChar[i]<>ch) do inc(i);,       OutHalfNibble(i shr 2);,       OutHalfNibble(i and 3);,       if i = $F then begin,         OutHalfNibble(bych shr 6);,         OutHalfNibble((bych shr 4) and 3);,         OutHalfNibble((bych shr 2) and 3);,         OutHalfNibble(bych and 3);,       end;,     end;,   end;, begin,   len := 1;,   Shift := 6;,   fillChar(Arr,sizeof(Arr),0);,   For i := 1 to length(st) do OutChar(St [M]);  ,   outchar (# 0); - einde - string teken�),     als dienst = 6,         dan dec (len); aan het einde van het,,.,



Previous:
Next Page: