Witam.
Potrzebuje skompresować dane w pascalu z char na Longint.. Jak to zrobić..?
0
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.