Zitat von
BAMatze:
Denke aber mal Binärdatei wird sicherlich heißen Zahl in Dualcode (Basis 2) speichern.
Physikalisch ist alles als 0 und 1 gespeichert, auch ein Textfile. Bei einem binären File macht man garnicht so viel anders, ausser dass man eben nicht in Text bzw. Strings umwandelt. Du schreibst einfach einen Wert so wie er im Speicher ist auf die Platte. Dass da Nullen und Einsen im Spiel sind bekommst du überhaupt nicht mit.
Zitat:
Könnte man das in dem Fall auch in einen Stream packen?
Zunächst wegen der Löschung: Du kannst doch eine Datei auch einfach löschen wenn sie nicht mehr benötigt wird.
Stream ist ein Oberbegriff. Zu unterscheiden sind in diesem Fall hier wohl Filestream und Memorystream. Ersteres entspräche meinem Vorschlag, letzteres deiner Nachfrage. Das schöne hier ist, dass sich das Schreiben und Lesen bei den beiden kaum unterscheidet, d.h. du musst im Idealfall einfach nur den Typ deines Streams ändern und kannst zwischen Puffern auf Platte und Puffern im
RAM wechseln, ohne sonstige größere Umbauten.
Ob du mit einem Memorystream auskommst ist eine Frage der Datenmenge die du vorhalten willst, und des verfügbaren RAMs natürlich. Wenn du Double-Werte nimmst, brauchst du pro Wert 8 Byte. Du sagst du hast alle 50ms einen Wert. Wenn die Messung nun also 10 Sekunden dauert, sind das (1000/50)*10 = 200 Werte á 8 Byte ~= 1,56kB. Das ist ein Fliegenschiss
Ab in einen Memorystream damit. Dauert eine Messung 1h sind es auch nur 562,5kB. Letztlich scheint mir ein Memorystream hier wohl auch deutlich geeigneter, da die Datenmenge irgendwie weit geringer ausfällt als ich so im ersten Moment gedacht hatte.
Vorteil bei der Umsetzung als Memorystream: Du kannst auf Wunsch dann sogar sehr einfach das Speichern einer Messreihe als Datei anbieten.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)