KOmpresja danych

PP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0

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

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

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

unikalna_nazwa
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
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.
babubabu
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łódź
  • Postów: 648
0

val (char,longint,err);

JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.