var
buf:pointer;
begin
getmem(buf,1000);
end;
i chciał bym do bufora odczytać i zapisać dane bajt po bajcie jak mogę to zrobić bo tam jest tylko pointer?
var
buf:pointer;
begin
getmem(buf,1000);
end;
i chciał bym do bufora odczytać i zapisać dane bajt po bajcie jak mogę to zrobić bo tam jest tylko pointer?
move
Może ktoś napisać jak zapisać bajt po bajcie pamięć którą sobie zarezerwowałem. Prosił bym o przykład.
Zgaduję, że powinieneś najpierw doczytać podstawy odnośnie wskaźników (btw, od takich tematów jest dział newbie
).
A odnośnie pytania - zapewne coś w rodzaju:
PByte(wskaznik)^ := wartosc;
Chyba, że chcesz te dane masowo np.kopiować z jednego miejsca na inne; wtedy oczywiście wydajniej i rozsądniej byłoby użyć rzeczonego wcześniej move
.
Faktycznie działa. Ostatnie pytanko jak odczytać kolejny bajt?. Bo kiedy użyje x:=pbyte(buf)^; To odczytuje pierwszy element jak mu wskazać, żeby odczytywał następne. Wiem, że dla nie których to proste ale ja sobie nie radzę z tymi wskaźnikami
piter2004 napisał(a)
Wiem, że dla nie których to proste ale ja sobie nie radzę z tymi wskaźnikami
Bo wskaźniki z natury trudno zrozumieć, dlatego polecam poczytać choćby ten artykuł;
jak mu wskazać, żeby odczytywał następne
Zapewne PByte(wskaznik+1)^
?
Próbowałem tak, ale się nie da pisze wtedy błąd "Operator not applicable to this operand type"
var
x:byte;
buf:pointer;
begin
getmem(buf,1000);
x:=PByte(buf+1)^;
end;