SD-Karte soll alle jede stunden einen Wert speichern. Das aber nur 5 mal. Nach dem 5ten mal soll immer der älteste Wert gelöschte werden.
Die Werte +Uhrzeit zu speichern klappt schon.
Vermute das man hier einen for schleife benötigt die ich einfach bis 5 zählen lasse?
Bitte um Hilfe LG
how would a for loop help overwrite the oldest value?
presumably there are 5 locations allocated on the card. code needs to keep track of the next location to update. that location sequences thru the 5 location, being reset to the first after updating the last.
is the next location stored in a 6th location on the card?
Hallo,
das ist jetzt nicht ganz so einfach. Letztlich kannst Du nicht eine einzelne Zeile der Datei löschen.
Ich denke in Deinem Fall bei nur 5 zeilen ist es am einfachsten Du liesst alle Zeilen in ein Array ein. Dabei merkst Du dann ob schon 5 Zeilen vorhanden sind oder noch nicht. Wenn nicht hängst Du die neue Zeile ans Ende dran.
Wenn schon 5 Zeilen vorhanden sind verschiebst Du den Index um 1 runter , aus Zeile[1] wird Zeile[0] , aus Zeile[2] wird Zeile[1] usw. damit bekommst Du dann am ende eine freie Position Zeile[4] für die neuen Daten. Dann löschst Du die Datei komplett und schreibst die Einträge der Reihe nach neu beginnend bei Zeile[0] bist Zeile[4].
Wenn Du jetzt viele Zeile hättest würde ich zwei Dateien verwenden und die erste auslesen , mit einem Zeilenversatz in die zweite Puffer-Datei schreiben. Hinten die neue Zeile anfügen. Anschliessend dann die zweite puffer-Datei umbenennen auf die Erste.
schau dir mal das Thema Arrays an. ich denke dann kommst Du mit dem ersten Vorschlag schnell klar.
Heinz
Du speicherst jede Datei mit Dateinamen aus Datum-Uhrzeit. Wenn du mehr als 5 Dateien hast, dann durchsuchst du einfach dein Verzeichnis nach der ältesten Datei und löschst diese. Tipp wenn Datum Uhrzeit aus einem Unixzeitstempel hast, dann nimm als Dateinamen einfach den Zeitstempel in Hex (wegen der 8.3 Dateinamenbeschränkung)
Gibt es dafür einen Grund?
Fat16 formatierte Karten haben bei einer Größe von 2GB 64K Clustergröße
Vorausgesetzt Du schreibst jeden Tag eine Datei mit Stundenwerten, belegst Du jeden Tag einen Cluster, selbst wenn der Datensatz 2K enthält.
Ehe die Karte voll ist, vergehen Jahre.