Hallo,
bei
TWaveChunk.content handelt es sich auch um ein dynamisches Array, der Record enthält also nur einen Zeiger auf den eigentlichen String. Mit der Read-Methode von TFileStream versuchst du nun, die Zeichen in diesen Zeiger einzuladen - das muß scheitern. Versuche es einmal so:
Delphi-Quellcode:
procedure TWaveParser.ReadChunks(); //Chunks auslesen und in das Array "AttachedChunks" schreiben
var
Chunk : ^TWaveChunk;
begin
SetLength (AttachedChunks, 0);
while (FileStream.Position < WavFile.Size) do
begin
SetLength (AttachedChunks, Length(AttachedChunks) + 1);
Chunk := @AttachedChunks[High(AttachedChunks)];
FileStream.Read(Chunk.chunkname, 4);
FileStream.Read(Chunk.length, 4);
SetLength (Chunk.content, Chunk.length);
if (Chunk.length > 0) then
FileStream.Read(Chunk.content[0], Chunk.length);
end;
end;
Gruß Hawkeye