Zitat von
marabu:
Hallo Emil,
wenn
wavedata ein
array of Integer ist, dann geht es auch so:
Delphi-Quellcode:
uses
Math;
var
lphi, rphi: Single;
wavedata: array of Integer;
begin
lphi := MaxIntValue(Copy(wavedata, 0, 576));
rphi := MaxIntValue(Copy(wavedata, 576, 576));
end;
Eine Konvertierung von Integer nach Float kann der Compiler automatisch vornehmen. Umgekehrt ist es wegen des Informationsverlustes in Pascal (Pascal ist nicht Basic oder Perl - alles ist strikt) nicht erlaubt, sodass du Trunc() oder andere Funktionen benutzen musst.
Freundliche Grüße
Supi Danke für die Infos ...
Habe mir erlaubt dir eine PN zu schicken.
Aber hier die Deklaration von wavedata
Delphi-Quellcode:
Type
TWaveData = Array[0..576] Of byte;
PWaveData = ^TWaveData;
end;
Daten werden so eingelesen!
wavedata := @This_Mod^.WaveformData[0][0];
In der PN habe ich mal näher geschildert (als ich die Antwort hier noch nicht kannte)
wo das problem liegt.
Ich denke die berechnung über 'abs' so wie ursprünglich aufgeführt kann nicht funktionieren
da die variablen ganz anderes deklariert sind in c++
Bekomm auch unabhängig jetzt von der konvertierung immer einen wert von 255.
Was noch erschwerend hinzukommt ist halt das die konvertierung nach Single kläglich scheitert.
Deine Variante habe ich mal geprüft geht aber wegen dem Array nicht..
Werd mal versuchen die umzustricken.
EDIT: geht nicht wieder wegen konvertierungs problemen..
Danke wie immer Emil