KOmpresja danych

0

Witam.
Potrzebuje skompresować dane w pascalu z char na Longint.. Jak to zrobić..?

2

Ale char jest mniejszy od Longinta więc nie bardzo widzę tutaj możliwość kompresji jednego do drugiego...

0

Mi się wydaje że chodziło o upchanie czterech charów do longinta:

type c4 = array[1..4] of char;

function AsLongint(var Buffer): Longint;
var l: Longint absolute Buffer; 
begin 
  AsLongint := l;
end; 

function AsCharArray(var Buffer): c4;
var r: c4 absolute Buffer;
begin
  AsCharArray := r;
end;

var c: c4;
  wynik: longint;
begin
  c := 'test';

  wynik := AsLongint(c);
  writeln('Cztery bajty jako longint: ', wynik);

  c := AsCharArray(wynik);
  writeln('Z powrotem na chary: ', c);

  Inc(wynik, $A shl 8);
  writeln('Zamieniam "e" na "o": ', AsCharArray(wynik));

end.
0

val (char,longint,err);

0

Jeśli te 4 chary są obok siebie, zawsze można pobrać adres pierwszego znaku i rzutować ten wskaźnik na longint.

1 użytkowników online, w tym zalogowanych: 0, gości: 1