Wenn es das ist was du meinst.
Nein, ich brauch korrekte Daten für's erste Record damit ich deine Type definition überarbeiten kann, da stimmt was nicht.
Alternativ spiel mit diesem Schnippsel rum, mit dem entstand das Bild von oben. Nicht lachen aber so mach ich es.
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
type
TSTChannel = packed record
ID : Integer;
// streamName : Array [0..250] of AnsiChar;
streamName : Array [0..MAX_PATH] of AnsiChar;
freq : single;
volume : single;
pan : single;
mute : byte;
solo : byte;
duration : Integer;
percent : Integer;
grouplevel : single;
led : byte;
rMeterValue : single;
reserved : Array [0..25] of AnsiChar;
end;
var
STChannel : TSTChannel;
MyRead: File of TSTChannel;
i : Integer;
begin
Memo1.Clear;
AssignFile(MyRead, '.\Channels.bin');
Reset(MyRead);
try
while not EOF(MyRead) do
begin
Read(MyRead, STChannel);
with STChannel do
begin
Memo1.Lines.Add('ID: '+IntToStr(ID));
Memo1.Lines.Add('StreamName: '+String(StreamName));
Memo1.Lines.Add('Freq: '+FloatToStr(freq));
Memo1.Lines.Add('Volume: '+FloatToStr(Volume));
Memo1.Lines.Add('Pan: '+FloatToStr(Pan));
Memo1.Lines.Add('Mute: '+IntToStr(Mute));
Memo1.Lines.Add('Solo: '+IntToStr(Solo));
Memo1.Lines.Add('Duration: '+IntToStr(Duration));
Memo1.Lines.Add('Percent: '+IntToStr(Percent));
Memo1.Lines.Add('GroupLevel: '+FloatToStr(GroupLevel));
Memo1.Lines.Add('Led: '+IntToStr(Led));
Memo1.Lines.Add('rMeterValue: '+FloatToStr(rMeterValue));
Memo1.Lines.Add('Reserved: '+String(Reserved));
Memo1.Lines.Add('');
end;
end;
finally
CloseFile(MyRead);
end;
end;