![]() |
AW: Binärdatei Record auslesen\zuweisen
Zitat:
Ich hab gefragt ob du die Datei mal hochladen könntest, damit wir uns das mal anschauen können. |
AW: Binärdatei Record auslesen\zuweisen
Hmm..
Wenn ich dass richtig sehe, sind die Array Definitionen falsch! Richtig müsste es so sein: (Oben das Original)
Delphi-Quellcode:
So kommt auch die Länge von 320 Bytes hin...
{
MAX_PATH = 260; TYPE STChannel ID AS LONG streamName AS ASCIIZ * %MAX_PATH freq AS SINGLE volume AS SINGLE pan AS SINGLE mute AS BYTE solo AS BYTE duration AS LONG percent AS LONG grouplevel AS SINGLE led AS BYTE rMeterValue AS SINGLE reserved AS ASCIIZ * 25 '// Total 320 bytes. END TYPE } 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; Ein C-Array von 25er Länge ist in Delphi ein Array von 0..24 ! (Erstellt mit D6) |
AW: Binärdatei Record auslesen\zuweisen
Du hast Recht. Doof, dass echt keiner von uns in den ganzen 4 Seiten drauf gekommen ist :oops: :lol:
Die Arrays waren jeweils 1 Element zu lang. |
AW: Binärdatei Record auslesen\zuweisen
Zitat:
![]() gruss |
AW: Binärdatei Record auslesen\zuweisen
Zitat:
@HolgerX Danke vielmals.. gruss |
AW: Binärdatei Record auslesen\zuweisen
Zitat:
Per HexEdit zeigt der mir für #8 auch einen gekappten Namen an ("weetly Broken (A)\Loop.mp3" alle anderen beginnen mit "Sweetly Broken") und #9 ist leer. Könnte es sein dass das (#8 und #9) entfernte Records sind? Also Überbleibsel. |
AW: Binärdatei Record auslesen\zuweisen
Zitat:
gruss |
AW: Binärdatei Record auslesen\zuweisen
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..
Hab mal nen kleines Testtool... Scheint alles nun zu passen.. (Erstellt mit D6) |
AW: Binärdatei Record auslesen\zuweisen
Ok, Dein Tool bringt die gleichen Ergebnisse, #8 und #9 entweder defekt oder sonst was.
Delphi-Quellcode:
Danke für check!
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; |
AW: Binärdatei Record auslesen\zuweisen
Zitat:
Zitat:
Das Teil ist nur zum testen meiner LIB. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz