Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Binärdatei Record auslesen\zuweisen

  Alt 17. Apr 2018, 14:53
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;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat