das ist eine ungünstige variante:
Bytes: array[0..10000] of byte;
Du solltest lieber einen Record verweden, welche die einzelnen Feld mit Namen definiert.
Pseudocode:
Delphi-Quellcode:
type
midi = packed record
// MIDI File Header Chunk
Header: array[1..4] of char;
// Headerlänge
HeaderSize: cardinal; // hier evtl. auf little/big endian achten!
[...]
end;
Dann wenn du es nutzt initialisieren -> also in rec.header den String schreiben.
Wenn du die Daten dann weiter nutzt brauchst du nur den Zeiger auf den Record weiterverarbeiten.
Bei dem Datenaufbau, wirst du mehrere Records brauchen bzw. diese sind dann nützlich.
Danke werde mal schaun ob ich das mit dem Record auf die reihe kriege.
Sagte ja Hardcoded und aus Informationen aus dem Net zusammen gesucht.
Gibt ja ne Componente hier aber kann ich so nicht verwenden.
Zitat:
Bytes[0] hast du vergessen
Was in 0 für Daten stehen ist mir nicht bekannt.
Muss dann das array halt auf array[1..10000] setzen.
Hatte eigentlich vor den Header von Hand aus weiter zu verarbeiten.
Delphi-Quellcode:
Bytes[CurrentByte] := ord('M');
inc(CurrentByte);
Bytes[CurrentByte] := ord('T');
inc(CurrentByte);
Bytes[CurrentByte] := ord('r');
inc(CurrentByte);
Bytes[CurrentByte] := ord('k');
inc(CurrentByte);
CurrentByte := CurrentByte + 4;
gruss