Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.656 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Konvertierung von C nach Delphi

  Alt 29. Jun 2020, 16:47
for i2 := 0 to (samples div 2) - 1 do

und ich würde ehre auf SHR tippen
dest[i2] := source[i2 shr 1] shr 8;

oder dest[i2] := High(source[i2 shr 1]); bzw. besser so dest[i2] := WordRec(source[i2 shr 1]).Hi;

Jupp, sieht so aus, als wenn da einfach nur jedes zweite Byte umkopiert wird,
also aus einem Word-Array wird ein Byte-Array und das kannst auch gern über zwei Arrays lösen
Delphi-Quellcode:
var
  WordData: array[0..Length-1] of Word; // oder hier direkt WordRec als Typ, das erspart dann den Cast
  ByteData: array[0..Length-1] of Byte;

for i := 0 to Length-1 do
  ByteData[i] := WordRec(WordData[i]).Hi; // := WordData[i] shr 8;


Man könnte das hier sogar im selben Speicher/Array umkopieren, aber da darfs man dann NIEMALS von hinten kopieren, sondern muß vorwärts durch die Daten,
denn sonst überschreibt man Daten, die später noch kopieren werden sollen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat