Wo kommt die Datei denn her? Schreibst Du die selbst? Hilft es evtl., den Record als packed zu deklarieren?
Nein ich schreibe sie nicht selbst. (noch nicht)
Ich kenne nur die Definition.
Und öffne sie so.
Delphi-Quellcode:
var
Channel: array[1..MAXCHANNEL] of TSTChannel;
Delphi-Quellcode:
fHandle := CreateFile(PWideChar(sFile), GENERIC_READ, 0, nil, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if (fHandle <> INVALID_HANDLE_VALUE) then
begin
FillChar(Channel, sizeof(TSTChannel) * MAXCHANNEL, 0);
BufferSize := sizeof(TSTChannel) * MAXCHANNEL;
FileSize := GetFileSize(fHandle, @FileSize);
if (FileSize = INVALID_HANDLE_VALUE) then
FileSize := 0;
if (FileSize div sizeof(TSTChannel) = 8) then
BufferSize := FileSize;
if (FileSize < BufferSize) then
BufferSize := 0
else
bErrorFlag := ReadFile(fHandle, Channel[1], BufferSize, dwBytesReaden, nil);
CloseHandle(fHandle);
end;
Der wert im Channel[1].Volume müsste 50 sein ist er aber nicht.
gruss