Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#17

AW: Wieder TextDatei diesmal binär

  Alt 13. Apr 2011, 16:23
1.) Bei einem FileStream sollte man ReadBuffer und WriteBuffer anstelle von Read und Write verwerden.
2.) Datenstrukturen schreibt man nicht Byte für Byte, sondern in einem Rutsch.
Delphi-Quellcode:
type
  TMidiHeader = record .... end;
var
midiheader : TMidiHeader;

f := TFileStream.Create(MidiFilename, fmCreate);
f.WriteBuffer(midiheader, sizeof(midiheader));
....
f.Free;
Ich habe keinen MidiHeader als record deklariert das ist bei mir Hardgecoded.

NamenLozer
Delphi-Quellcode:
  f := TFileStream.Create(MidiFile, fmCreate or fmOpenReadWrite);
  f.Write(Bytes[1], CurrentByte);
  f.Free;
Das wars funktioniert jetzt so wie es soll.
Na ja die Tonhöhe noch nicht aber das ist ein anderes problem.

gruss

Geändert von EWeiss (13. Apr 2011 um 19:01 Uhr)
  Mit Zitat antworten Zitat