Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#6

AW: Konvertierung von C nach Delphi

  Alt 29. Jun 2020, 17: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat