Zitat von
Der_Unwissende:
Zitat von
sonicfire:
Delphi-Quellcode:
Procedure TForm1.LoadTheWave(FileName: String; out Value: TSmallIntArray;Start: Integer = 0);
begin
with TFilestream.Create(Filename, fmOpenRead) do
try
Position := Size;
setlength(Value, Size-Position);
ReadBuffer(Value,length(Value));
finally
Free;
end;
end;
Schau dir mal an was du hier tust! Du setzt Position := Size und dann die Länge von Value auf Size - Position, anders gesagt, du setzt die Länge von Value auf 0.
Wenn du 0 Byte zu schreiben hast, nun ja, dann wird natürlich auch nie irgendwas geschrieben...
Gruß Der Unwissende
Okay, leuchtet ein ... aber warum bekomme ich Stream-Errors wenn ich Position einfach weglasse? Oder Position := 0 (was logisch wäre)? ... genauso - müsste setlength(Value, Size) nicht funktionieren? (Aber nein, tut es nicht)...ARGH! Ich könnte echt nur auskeksen....seufz