On 06/03/17 14:50, fredvs wrote: >> I don't know. By all logic, it should not work either. > > OK, It comes from a "lucky" bug (thanks to reveal it). > There was a setlength(buffer, length(buffer) * channels) not needed. > > Ok, fixed. > > But the problem remain: > > If data are int16 or int32: OK, the file is created with +- 1 mega bytes and > I can get those data back. > > But if data are float32: NOT OK, the file is created but with only 6 octets > ;-( . > > For example, > > for x :=0 to length(bufferfloat) -1 do > bufferfloat[x] := 127 ; // for int16 ---> it works > > for x :=0 to length(bufferfloat) -1 do > bufferfloat[x] := 2147483646; // for int32 ---> it works > > for x :=0 to length(bufferfloat) -1 do > bufferfloat[x] := 0.2147483646 ; // for float32 ----> it does not work >
Looks like for float you'd need a conversion record {enable packed records} TFloatToBuffer = packed record case boolean of true: FloatField : float32; false : BufferField : array[0..3] of byte; end; end; for x := 0 to length(bufferfloat)-1 do bufferfloat[x].FloatField := {float value} // but then special handling is likely needed to concat the buffer to write to file and reading from file // so be careful ;) -L. > > Fre;D > > > > ----- > Many thanks ;-) > -- > View this message in context: > http://free-pascal-general.1045716.n5.nabble.com/Adding-a-array-of-float-in-ressource-and-use-it-tp5727765p5727784.html > Sent from the Free Pascal - General mailing list archive at Nabble.com. > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal > _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal