wskaźnik a tablica

0

zczytuje dane z pliku używająć:
var P: pointer;

blockread(filehandle, p, datasize);

I teraz chciałbym mieć dostęp do wskażnika p jak do tablicy. Jak to zrobić?

0

Wczytuj za pomocą blockread bezpośrednio do tablicy. Ewentualnie zrzutuj p na typ jakiejś tablicy

type TTablica = array of byte; //przykładowo
	
var
	P:Pointer;
	tab: TTablica;

blockread(fh, p, datasize);
tab:=TTablica(p); // powinno działać
0

A może lepiej dane zczytywać do tablicy dynamicznej, wielkość tablicy ustawia się instrukcją setlength

0

No, ale jak robie:
setlength(tablica, datalength);
blockread(filehandle, tablica, datalength); to mi wywala błąd ;/

0

ok, zrobiłem to tak jak Bula powiedział z rzutowaniem wskaźnika na ttablica;

type ttablica = array of byte;

arraydata:= ttablica(pointerdata);

i działa! Dzięki!

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