AW: Wieder TextDatei diesmal binär
Delphi-Quellcode:
Allerdings hab ich hier ein verständnis problem
// Datei schreiben
f := TFileStream.Create(MidiFile, fmOpenReadWrite); for IntA := 1 to CurrentByte do f.Write(Bytes[IntA], CurrentByte); f.Free; Meine Datei wird 25KB groß dürfte aber nur etwa max 1 KB sein. Wenn ich in die Datei schaue fällt mir auf das die Datei abhängig von IntA jedesmal komplett neu eingefügt wird. Was ist da falsch bei mir ? CurrentByte sind 164. PS: Geht damit auch nicht So wie es aussieht kann ich damit nur Dateien editieren die Existieren. Oder aber ich verwende ein falsches Flag. gruss |
AW: Wieder TextDatei diesmal binär
Delphi-Quellcode:
// Datei schreiben
f := TFileStream.Create(MidiFile, fmOpenReadWrite); // Datei wird geöffnet, neue Inhalte werden hinten angehängt for IntA := 1 to CurrentByte do f.Write(Bytes[IntA], CurrentByte); // Wenn in dem Array tatsächlich Bytes drin sind muss als 2. Parameter sizeof(Byte) stehen! f.Free; |
AW: Wieder TextDatei diesmal binär
Zitat:
Aber leider funktioniert es nicht kann nur vorhandene Dateien öffnen. gruss |
AW: Wieder TextDatei diesmal binär
Geht auch einfacher:
Delphi-Quellcode:
f := TFileStream.Create(MidiFile, fmOpenReadWrite);
f.Write(Bytes[1], CurrentByte{*SizeOf(Byte)}); f.Free; Zitat:
|
AW: Wieder TextDatei diesmal binär
.. versuche mal als FileMode fmCreate zum Erstellen einer neuen Datei.
Grüße Klaus |
AW: Wieder TextDatei diesmal binär
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; |
AW: Wieder TextDatei diesmal binär
Zitat:
NamenLozer ;)
Delphi-Quellcode:
Das wars funktioniert jetzt so wie es soll.
f := TFileStream.Create(MidiFile, fmCreate or fmOpenReadWrite);
f.Write(Bytes[1], CurrentByte); f.Free; Na ja die Tonhöhe noch nicht aber das ist ein anderes problem. gruss |
AW: Wieder TextDatei diesmal binär
[OT]
Zitat:
Was für ein übles Missverständniss. Ich halt das kaum noch aus, soetwas zu lesen... Also deiner Meinung nach wird TEXT nicht binär gespeichert? Werden also die einzelnen Buchstaben auf die Magnetplatten draufgekritzelt? -.- Was macht es für einen Unterschied, wie ich folgendes speichere: 'A' (Char) = 65 (Dezimal) = $41 (Hexadezimal) = 01000001 (Binär) = 101 (Oktal) Das ist nur eine Darstellungsform. Letzendlich landet alles in Form von Einsen und Nullen auf der Platte! Keep that in mind and stop making that very same mistake [/OT] |
AW: Wieder TextDatei diesmal binär
Cool down...
Mir ging es darum, daß es für jeden der beiden Fälle spezifische Datentypen und Vorgehensweisen gibt. Bei Deinem famosen Wissen wird Dir das ja nicht neu sein. Wir programmieren in Delphi und sollten daher auch dessen Werkzeuge verwenden. End of transmission. |
AW: Wieder TextDatei diesmal binär
Zitat:
@EWeiss: dann definiere dir doch einen entsprechenden Record. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz