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
[EDIT]
PS: Du solltest deine FileStreams noch etwas anders öffnen. Wenn du etwas zum Lesen öffnest, solltest du eine Schreibsperre setzen (sonst könntest du irgendwann das Problem haben, dass jmd. schreibt während du liest) und wenn du schreibst, dann kannst du gleich exklusiv sperren.
Delphi-Quellcode:
// zum Lesen:
TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
// zum Schreiben:
TFileStream.Create(FileName, fmOpenRead or fmShareExclusive);
[/EDIT]