Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#39

AW: Binärdatei Record auslesen\zuweisen

  Alt 17. Apr 2018, 19:00
Ok, Dein Tool bringt die gleichen Ergebnisse, #8 und #9 entweder defekt oder sonst was.
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
type
  TSTChannel = packed record
    ID : LONGINT;
    streamName : Array [0..MAX_PATH-1] of AnsiChar;
    freq : single;
    volume : single;
    pan : single;
    mute : BYTE;
    solo : BYTE;
    duration : LONGINT;
    percent : LONGINT;
    grouplevel : single;
    led : BYTE;
    rMeterValue : single;
    reserved : Array [0..24] of AnsiChar;
   end;
var
 STChannel : TSTChannel;
 MyRead: File of TSTChannel;
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('RECORD >>> '+IntToStr(FilePos(MyRead))); // Da ID nichts liefert, liefer ich mir selbst was
       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;
Danke für check!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat