Was soll das machen?
A2[k] := buffer[k]?
PByte konvertiert nichts, sondern ist nur nen Poiner auf ein Byte.
wenn du aus zwei Bytes (z.B: 0300h) ein Short machst und dir dann siehst du die 0 nicht mehr, weil 0300h eben die Zahl 3 als Short ist.
Sorry werde aus deinen schreiben nicht schlau etwas konfus..
A2[k] := buffer[k]? steht nirgends.
Habe es jetzt mal so gemacht nicht schön aber das Array wird dann gefüllt so wie ich es erwarte.
Delphi-Quellcode:
for K := 0 to (Count * 2) do
begin
//MoveMemory(PByte(@buffer[0]) + K * sizeof(Short), @A2[K], sizeof(Short));
if K mod 2 <> 0 then
begin
buffer[K] := 0;
continue;
end else
buffer[K] := A2[K div 2];
end;
gruss