Du kannst auch nochmal über Festkommawerte nachdenken. Unter Umständen kommst du dann auf 2 Bytes runter. Wenn du z.B. eine Genauigkeit von 2 Nachkommastellen haben willst, dann schaffst du damit einen Temperaturbereich von 0 bis 650 Kelvin. (wenn du z.B. eine 24533 abspeicherst, bedeutet dies 245.22) Festkommawerte entsprechen ja auch eher dem Verhalten von A/D-Wandlern.
TFileStream ist ganz einfach. (ungetestet)
Delphi-Quellcode:
const Dateiname='xyz.dat';
var Datei:TfileStream;
...
if fileexists(Dateiname) then
begin
Datei:=Tfilestream.create(Dateiname,fmopenread);
Datei.seek(0,sofromend);
end
else
begin
Datei:=Tfilestream.create(Dateiname,fmopenread);
//Header schreiben, z.B.
Datei.write(zeit,sizeof(zeit)); //zeit ist z.B. TDateTime
end;
try
//Messwert schreiben
Datei.write(Messwert,sizeof(Messwert);
...
finally
Datei.free;
end;
Wahrscheinlich ist es güntstiger das Auslesen der Messwerte in einem Thread zu gestalten, damit du wirklich jede Sekunde lesen kannst, falls mal das Speichern (oder das
GUI) etwas länger dauert.
Edit: himitsus Variante wird auch von vielen Messgeräteherstellern genutzt. Du hast eben Blöcke, die am Anfang einen Zeitstempel und eine Länge haben. Dadurch kannst du auch nach einer Pause in derselben Datei weiterschreiben und einfach einen neuen Block anfangen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.